Проверьте, что поле существует с MongoDB
поэтому я пытаюсь найти все записи, которые имеют набор полей, а не null.
Я пытаюсь использовать , согласно документация MongoDB, этот запрос вернет поля, которые равны нулю.
$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 при каждом вызове.
Comments