Ответ 1
Чтобы узнать, существует ли в вашем документе ключ/поле, используйте оператор $exists.
Через оболочку MongoDB...
db.things.find( { ln : { $exists : true } } );
Записи в моей базе данных
{"_id":"1","fn":"sagar","ln":"Varpe"}
{"_id":"1","fn":"sag","score":"10"}
{"_id":"1","ln":"ln1","score":"10"}
{"_id":"1","ln":"ln2"}
Мне нужно спроектировать запрос MongoDB, чтобы найти все записи с заданным ключом.
Например, если я передаю ln
в качестве параметра к запросу, он shuold возвращает все записи, в которых ln
является ключом. Результаты будут
{"_id":"1","fn":"sagar","ln":"Varpe"}
{"_id":"1","ln":"ln1","score":"10"}
{"_id":"1","ln":"ln2"}
Чтобы узнать, существует ли в вашем документе ключ/поле, используйте оператор $exists.
Через оболочку MongoDB...
db.things.find( { ln : { $exists : true } } );
У меня была та же проблема и
db.coll.find({"mykey":{'$exists': 1}})
работал у меня
db.collection.find({ ln: { $exists: true} });
Оператор $size сопоставляет любой массив с количеством элементов, заданных аргументом. Например:
db.collection.find({ ln: { $exists: true, $size: 0 } });
$size не принимает диапазоны значений. Чтобы выбрать документы на основе полей с различным количеством элементов, создайте поле счетчика, которое вы увеличиваете при добавлении элементов в поле.