Проверьте наличие столбца в MongoDb - PullRequest
0 голосов
/ 13 сентября 2018

Я попросил создать функцию, которая может обновлять коллекцию MongoDb, передавая имена ее столбцов и соответствующие значения. Написанная мною функция (на стадии тестирования) будет принимать имена столбцов, значения, имена коллекций и т. Д. Перед обновлением I Я хочу проверить, существует ли данная коллекция и существуют ли в ней столбцы, и если все в порядке, попробуйте обновить коллекцию. Я смог проверить, существует коллекция или нет, но не смог сделать то же самое для столбцов. Я нашел это на сайте Mongodb { item : { $exists: false } } но я не нашел точный код C # для того же. Можно ли с помощью c # проверить, существует ли столбец в MongoDb? MongoDb версии 4.0 - это то, что я сейчас использую.

Примечание: у меня нет строго типизированных данных, так как функция не знает о коллекции и типе данных, которые она содержит. Цель состоит в том, чтобы принимать имена и значения столбцов и обновлять те поля, которые были переданы ему.

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018
       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 Спасибо за быстрый ответ, с небольшим обновлением я получил то, что хотел.

0 голосов
/ 13 сентября 2018

Если вы хотите найти документы, в которых недвижимость не существует, вы можете использовать следующий код:

var modelsWithoutItem = collection.Find(
    Builders<DocModel>.Filter.Exists(m => m.Item, false)
);

или если у вас нет строго типизированных данных:

var modelsWithoutItem = collection.Find(
    Builders<BsonDocument>.Filter.Exists("item", false)
);
...