我有一系列ObjectIds
,我想更新与ObjectIds匹配的所有文档中的属性。所以基本上是SQL的等价物:
update collection set prop = false where id in (1,2,3)
我为Mongo构建的查询是:
List<BsonValue> output = GetValues();
var builder = Builders<MyCollection>.Filter;
var filter = builder.In("_id", output);
var update = Builders<MyCollection>.Update.Set("Prop", false);
var result = myCollection.UpdateMany(filter, update);
但是,当我运行时,我收到以下异常:
指定的演员表无效。
知道我做错了什么吗?提前谢谢!
更新
所以这个查询很好......看起来问题出在我班上。
我的课程是:
public class MyCollection
{
[BsonId]
public ObjectId _id { get; set; }
//Other properties
}
显然没有正确映射ObjectId。我没有明确的需要,所以我删除它,然后它开始工作。
希望这有助于其他人。
答案 0 :(得分:0)
回答我自己的问题,以便将来可以帮助其他人。
我的课程是:
public class MyCollection
{
[BsonId]
public ObjectId _id { get; set; }
//Other properties
}
未正确映射ObjectId属性。在我的情况下,我没有必要,所以我删除它,然后它开始工作。