我是MongoDb的新手,我需要做一个过滤器。我需要更新所有这些字段的“值”属性,其中值不为null且值不等于先前的值
FilterDefinition<BsonDocument> filter = Builders<BsonDocument>.Filter.And(
Builders<BsonDocument>.Filter.Eq("field_id", kvp.Key),
Builders<BsonDocument>.Filter.Or(
Builders<BsonDocument>.Filter.Eq("value", ""),
Builders<BsonDocument>.Filter.Eq("value",previousValue)));
UpdateDefinition<BsonDocument> update = Builders<BsonDocument>.Update.Set("$.value", kvp.Value.Item2);
bulkCommands.Add(new UpdateManyModel<BsonDocument>(filter, update));
过滤器返回所有元素,即使该值为null,也将更新该值。
我试图用这种方式:
var builder = Builders<BsonDocument>.Filter;
var filt = builder.Eq("field_id", kvp.Key) & builder.Eq("value", "");
但同样的问题,该命令将更新所有条目,即使该值为空