sql >> Base de Datos >  >> NoSQL >> MongoDB

cómo consultar objetos secundarios en mongodb

Si es exactamente null (en lugar de no establecer):

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

(pero como señala javierfp, también coincide con documentos que no tienen ninguna matriz de ciudades, supongo que sí).

Si es el caso de que la propiedad no está establecida:

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

Probé lo anterior con una colección creada con estos dos insertos:

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

La primera consulta encuentra el primer estado, la segunda consulta encuentra el segundo. Si desea encontrarlos a ambos con una consulta, puede hacer un $or consulta:

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