[英]How to parse ObjectId of dynamic type in .NET MongoDb Driver
這是我的代碼。 DbContext.Resources
是IMongoCollection<dynamic>
因為它是高度非結構化的。
var resource = await DbContext.Resources.Find(
Builders<dynamic>.Filter.Eq("_id", ObjectId.Parse(id))
).SingleAsync();
結果resource
對象是
[{
"_id": {
"timestamp":1487967980,
"machine":614561,
"pid":30862,
"increment":16022269,
"creationTime":"2017-02-24T20:26:20Z"
},
...
}]
解析此_id
的最佳實踐是什么?
有多種表示和構造ObjectId
。 從IMongoCollection
返回的對象對應於您在數據庫中看到的實際_id
值,該值是使用構造函數編碼的,該構造函數可以在此處看到,並且由以下字段組成:
timestamp
(int) machine
哈希(int) pid
(短) increment
(整數) ObjectId
應該實現ToString方法,允許您將對象轉換為其字符串表示形式,但是如果由於某種原因由於動態類型而無法使用它,則可以使用構造函數創建一個新對象,也可以利用ObjectId.Pack方法,它允許您將timestamp
, machine
, pid
和increment
轉換回一個字節數組,該數組也可用於創建ObjectId
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.