Compruebe que el campo exista con MongoDB

Así que estoy tratando de encontrar todos los registros que tienen un campo configurado y no es nulo.

Intento usar $exists , sin embargo, según la documentación de MongoDB, esta consulta arrojará campos que sean nulos.

$exists no coincide con los documentos que contienen el campo que almacena el valor nulo.

Así que ahora estoy asumiendo que tendré que hacer algo como esto:

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

Sin embargo, cada vez que pruebo esto, obtengo el error [invalid use of $not] Alguien tiene una idea de cómo consultar esto?

Use $ne (para “no igual”)

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

Supongamos que tenemos una colección como la siguiente:

 { "_id":"1234" "open":"Yes" "things":{ "paper":1234 "bottle":"Available" "bottle_count":40 } } 

Queremos saber si el campo de la botella está presente o no?

Ans:

 db.products.find({"things.bottle":{"$exists":true}}) 

Encuentro que esto funciona para mí

 db.getCollection('collectionName').findOne({"fieldName" : {$ne: null}}) 

Puedes usar .Count()

 count, err = collection.Find(bson.M{field: value}).Count() 

pero recuerda establecer:

Session.SetSafe

 db.SetSafe(&mgo.Safe{}) 

De lo contrario, devolverá 0 en cada llamada.