MongoDB c#find()返回_id的对象ID,但这是文档中的字符串

时间:2018-07-04 07:25:21

标签: c# mongodb objectid

我继承了这个MongoDB,它用作各种缓存。集合中所有文档的_id是字符串,例如:

_someCommonLibraryName.ConnectorLib_2016_2_0.InventoryItem:MODERN CATCH 8 ATGR+ HCP

(是_id。)

问题似乎出在其中带有加号的_id中。

当我这样查询集合时:

var proj = new ProjectionDefinitionBuilder<BsonDocument>().Include("_id").Include("internalId");
var findFilter = Builders<BsonDocument>.Filter.And(
               Builders<BsonDocument>.Filter.Eq("recordType", itemName),
               Builders<BsonDocument>.Filter.Exists("internalId"),
               Builders<BsonDocument>.Filter.Not(Builders<BsonDocument>.Filter.Type("internalId", BsonType.Null)),
               Builders<BsonDocument>.Filter.Eq("success", true)
               );

objsWithInternalId = collection.Find<BsonDocument>(findFilter).Project(proj).ToEnumerable();

我只为一小部分结果(在_id中都带有加号)返回_id字段的ObjectID。所有不带加号的_id都是字符串。

我将尝试让它们允许我更改文档,以便将长字符串制成字段并允许所有_ids为ObjectId,但是与此同时,我想弄清楚我能做什么获取所有_id的字符串结果。

谢谢。

0 个答案:

没有答案