我要求创建一个可以通过传递MongoDb集合的列名和相应值来更新MongoDb集合的函数。我编写的函数(现在处于测试阶段)将在更新前接受列名,值,集合名等。我想检查给定的集合是否存在以及该集合中提供的列名称是否存在,如果一切都很好,请更新该集合。我能够检查某个集合是否存在,但对Columns这样做却失败了。
我在Mongodb网站上找到了
{ item : { $exists: false } }
但我没有找到执行此操作的确切C#代码。 c#是否可以检查MongoDb中是否存在列?我现在正在使用MongoDb 4.0版。
注意:我没有任何强类型数据,因为该函数不知道集合及其所保存的数据类型。目标是接受列名和值,并更新传递给它的那些字段。
答案 0 :(得分:0)
如果要查找属性不存在的文档,可以使用以下代码:
var modelsWithoutItem = collection.Find(
Builders<DocModel>.Filter.Exists(m => m.Item, false)
);
或者如果您没有强类型数据:
var modelsWithoutItem = collection.Find(
Builders<BsonDocument>.Filter.Exists("item", false)
);
答案 1 :(得分:0)
var fieldExists = _collection.Find(Builders<BsonDocument>.Filter.Exists("item",true));
if (fieldExists.CountDocuments() > 0){
// yes document with this field is available
}else{
// No documents with that field name exists
}
@john谢谢您的快速回复,有了一些更新,我得到了我想要的东西。