it-swarm.com.de

Überprüfen Sie, ob das Feld mit MongoDB vorhanden ist

Ich versuche also alle Datensätze zu finden, die ein Feld haben und nicht null sind.

Ich versuche, $exists zu verwenden. Gemäß der MongoDB-Dokumentation werden jedoch diese Abfrage Felder zurückgeben, die gleich null sind.

$exists stimmt mit Dokumenten überein, die das Feld enthalten, in dem der Nullwert gespeichert ist.

Ich gehe jetzt davon aus, dass ich so etwas tun muss:

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

Wann immer ich dies versuche, erhalte ich jedoch die Fehlermeldung [invalid use of $not]. Hat jemand eine Idee, wie man dies abfragen kann?

93
AlbertEngelB

Verwenden Sie $ne (für "nicht gleich")

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

Angenommen, wir haben eine Sammlung wie folgt:

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

Wir möchten wissen, ob das Flaschenfeld nicht vorhanden ist?

Ans:

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

ich finde, dass das bei mir funktioniert

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