Więc próbuję znaleźć wszystkie rekordy, które mają ustawione pole i nie są puste.
Próbuję używać $exists
, jednak zgodnie z dokumentacją MongoDB to zapytanie zwróci pola o wartości null.
$exists
pasuje do dokumentów zawierających pole przechowujące wartość null.
Więc teraz zakładam, że będę musiał zrobić coś takiego:
db.collection.find({ "fieldToCheck" : { $exists : true, $not : null } })
Za każdym razem, gdy próbuję tego, pojawia się błąd. [invalid use of $not]
Czy ktoś ma pomysł, jak zapytać o to?
find
zawsze zwraca: zbiór rekordów spełniających kryteria.Załóżmy, że mamy kolekcję taką jak poniżej:
{ "_id":"1234" "open":"Yes" "things":{ "paper":1234 "bottle":"Available" "bottle_count":40 } }
Chcemy wiedzieć, czy pole na butelki jest obecne, czy nie?
Odp:
db.products.find({"things.bottle":{"$exists":true}})
źródło
When <boolean> is true, $exists matches the documents that contain the field, including documents where the field value is null.
Z dokumentów.uważam, że to działa dla mnie
db.getCollection('collectionName').findOne({"fieldName" : {$ne: null}})
źródło
db.<COLLECTION NAME>.find({ "<FIELD NAME>": { $exists: true, $ne: null } })
źródło