Ответ 1
Используйте $ne
(для "не равно" )
db.collection.find({ "fieldToCheck": { $exists: true, $ne: null } })
Итак, я пытаюсь найти все записи, у которых есть поле, и не является нулевым.
Я пытаюсь использовать $exists
, однако, согласно документации MongoDB, этот запрос вернет поля, которые равны нулю.
$exists
соответствует файлам, содержащим поле, в котором хранится нулевое значение.
Итак, теперь я предполагаю, что мне нужно будет сделать что-то вроде этого:
db.collection.find({ "fieldToCheck" : { $exists : true, $not : null } })
Всякий раз, когда я пытаюсь это сделать, я получаю сообщение об ошибке [invalid use of $not]
У кого-нибудь есть идея, как запросить это?
Используйте $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 при каждом вызове.