我继承了这个MongoDB,它被用作各种缓存 . 集合中所有文档的_id都是字符串,例如:
_someCommonLibraryName.ConnectorLib_2016_2_0.InventoryItem:MODERN CATCH 8 ATGR+ HCP
(是的,这是_id . )
问题似乎是任何带有加号的_ids .
当我像这样查询集合时:
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字段的ObjectID(所有这些都在_id中有加号) . 没有加号的所有_ids都是字符串 .
我将尝试让他们允许我更改文档,以便将长字符串设置为字段并允许所有_ids为ObjectIds,但在此期间我想弄清楚我能做些什么来获取字符串ALL _ids的结果 .
提前致谢 .