sql >> Database >  >> NoSQL >> MongoDB

hoe je onderliggende objecten in mongodb kunt opvragen

Als het precies null is (in tegenstelling tot niet ingesteld):

db.states.find({"cities.name": null})

(maar zoals javierfp opmerkt, het komt ook overeen met documenten die helemaal geen stedenarray hebben, ik neem aan dat ze dat wel hebben).

Als de eigenschap niet is ingesteld:

db.states.find({"cities.name": {"$exists": false}})

Ik heb het bovenstaande getest met een collectie gemaakt met deze twee inserts:

db.states.insert({"cities": [{name: "New York"}, {name: null}]})
db.states.insert({"cities": [{name: "Austin"}, {color: "blue"}]})

De eerste zoekopdracht vindt de eerste staat, de tweede zoekopdracht vindt de tweede. Als je ze allebei wilt vinden met één zoekopdracht, kun je een $or . maken vraag:

db.states.find({"$or": [
  {"cities.name": null}, 
  {"cities.name": {"$exists": false}}
]})


  1. MongoDB - Beperk de resultaten van een zoekopdracht

  2. Wanneer moet ik een NoSQL-database gebruiken in plaats van een relationele database? Is het oké om beide op dezelfde site te gebruiken?

  3. MongoDB $currentDate

  4. Opslaan en ophalen van JavaScript-objecten in/van MongoDB