我继承了这个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的字符串结果。
谢谢。