Проверьте, что поле существует с MongoDB
поэтому я пытаюсь найти все записи, которые имеют набор полей, а не null.
Я пытаюсь использовать , согласно документация MongoDB, этот запрос вернет поля, равные null.
$exists
соответствует документам, содержащим поле, в котором хранится значение null.
поэтому я теперь предполагаю, что мне придется сделать что-то вроде этого:
db.collection.find({ "fieldToCheck" : { $exists : true, $not : null } })
всякий раз, когда я пытаюсь это сделать, я получаю ошибка [invalid use of $not]
У кого-нибудь есть идея, как запросить это?
4 ответов
использовать $ne
(для "не равно")
db.collection.find({ "fieldToCheck": { $exists: true, $ne: null } })
предположим, что у нас есть коллекция, как показано ниже:
{
"_id":"1234"
"open":"Yes"
"things":{
"paper":1234
"bottle":"Available"
"bottle_count":40
}
}
мы хотим знать, присутствует ли поле бутылки?
Ans:
db.products.find({"things.bottle":{"$exists":true}})
Я нахожу, что это работает для меня
db.getCollection('collectionName').findOne({"fieldName" : {$ne: null}})
можно использовать .Count()
count, err = collection.Find(bson.M{field: value}).Count()
но не забудьте установить:
db.SetSafe(&mgo.Safe{})
в противном случае он возвращает 0 при каждом вызове.