Проверьте, что поле существует с MongoDB



поэтому я пытаюсь найти все записи, которые имеют набор полей, а не null.



Я пытаюсь использовать , согласно документация MongoDB, этот запрос вернет поля, которые равны нулю.




$exists соответствует документам, содержащим поле, в котором хранится значение null.




так что теперь я предполагаю, что мне придется сделать что-то вроде этого:



db.collection.find({ "fieldToCheck" : { $exists : true, $not : null } })


однако, когда я пытаюсь это, я получаю ошибка [invalid use of $not] кто-нибудь имеет представление о том, как запросить для этого?

548   4  

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()

но не забудьте установить:

сессии.SetSafe

db.SetSafe(&mgo.Safe{})

в противном случае он возвращает 0 при каждом вызове.

Comments

    Ничего не найдено.