亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Google.Cloud.Datastore.V1 中的 Key 是什么

Google.Cloud.Datastore.V1 中的 Key 是什么

C#
LEATH 2021-08-22 15:47:42
我是這個 nuget 包的新手,并且對Key類感到困惑。這是我基于Google.Cloud.Datastore.V1文檔的代碼庫:public long InsertMessage<T>(T iEntity) where T : IEntity<T>{    var keyFactory = _db.CreateKeyFactory(Kind);    var entity = iEntity.ToEntity();    entity.Key = keyFactory.CreateIncompleteKey();    using (var transaction = _db.BeginTransaction())    {        transaction.Insert(entity);        var commitResponse = transaction.Commit();        var insertedKey = commitResponse.MutationResults[0].Key;        Logger.Info($"Inserted key: {insertedKey}");        return insertedKey.Path[0].Id;    }}我所做的就是創建一個實體并創建一個不完整的密鑰,發送到服務器,然后從服務器取回填充的密鑰。我認為密鑰是實體的唯一標識。如果有誤解請糾正我。我可以通過 Query 獲取實體,如下所示:var query = new Query(Kind){    Filter = Filter.Equal("key", key),    Order = { { "created", PropertyOrder.Types.Direction.Ascending } }};foreach (var entity in _db.RunQueryLazily(query)){    list.Add(entity);}但我不知道如何使用插入時獲得的密鑰來獲取唯一實體Filter.Equal("key", key)。該示例顯示密鑰的結構是:{    "partitionId":    {        "projectId": "projectId",        "namespaceId": "namespaceId"    },    "path": [    {        "kind": "kind",        "id": "id"    }]}在這里我總結一下我的問題:什么是關鍵類?Key 的路徑是什么,為什么是數組?是id實體的唯一鍵嗎?如何Query通過Key和Id?感謝閱讀,請不要介意我糟糕的英語。
查看完整描述

1 回答

?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

鍵是文檔的唯一標識符。該文檔最好說的:

Cloud Datastore 中的每個實體都有一個唯一標識它的。密鑰由以下組件組成:

  • 實體的命名空間,允許多租戶

  • 類型的實體,它歸類它Cloud Datastore查詢的目的

  • 單個實體的標識符,可以是

    • 一個鍵名字符串

    • 整數數字 ID

  • 可選的祖先路徑在云存儲中定位的實體層次結構中的可選路徑祖先定位云存儲層次結構中的實體

“祖先路徑”部分是Path屬性中有數組的原因- 完全限定的鍵是一個命名空間,后跟一系列路徑元素,每個元素由一個種類和“整數 ID”或“字符串名稱”部分組成。

例如,您可能有一個圖書館應用程序。那有架子和書。忽略命名空間部分,特定書籍可能具有包含以下路徑元素的 ID:

  • 種類=架子;Id=1(數字 ID)

  • 種類=書;名稱=xyz(字符串名稱)

另一種思考方式就像集合和文檔名稱的交替序列,例如“/shelves/1/books/xyz”。這就是Firestore表示其文檔 ID 的方式。

任何一個路徑元素不必是唯一的,但完整的路徑是唯一的。沒有通過“鍵和 ID”進行查詢的真正概念 - 您可以查找完整的鍵(例如DatastoreDb.Lookup)或包含父鍵作為祖先路徑查詢。


查看完整回答
反對 回復 2021-08-22
  • 1 回答
  • 0 關注
  • 319 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號