sql >> Databasteknik >  >> NoSQL >> MongoDB

hur man frågar underordnade objekt i mongodb

Om det är exakt null (i motsats till inte inställt):

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

(men som javierfp påpekar, det matchar också dokument som inte har någon städer alls, jag antar att de har det).

Om det är så att egenskapen inte är inställd:

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

Jag har testat ovanstående med en samling skapad med dessa två inlägg:

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

Den första frågan hittar det första tillståndet, den andra frågan hittar det andra. Om du vill hitta dem båda med en fråga kan du göra en $or fråga:

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


  1. MongoDB $push vs $addToSet:Vad är skillnaden?

  2. Laravel och redis skanning

  3. Hur lagrar man sorterad uppsättning objekt i redis?

  4. JavaScript-designmönster -- Hanterar oönskad asynkroni