sql >> Databáze >  >> NoSQL >> MongoDB

jak dotazovat podřízené objekty v mongodb

Pokud je přesně null (na rozdíl od nenastaveno):

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

(ale jak zdůrazňuje javierfp, odpovídá také dokumentům, které nemají vůbec žádné pole měst, předpokládám, že ano).

V případě, že vlastnost není nastavena:

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

Výše jsem testoval s kolekcí vytvořenou s těmito dvěma vložkami:

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

První dotaz najde první stav, druhý dotaz najde druhý. Pokud je chcete najít oba pomocí jednoho dotazu, můžete vytvořit $or dotaz:

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


  1. Porovnání vzorů nasazení pro MongoDB

  2. jak odeslat libovolný objekt json na webapi

  3. Zálohování a obnovení MongoDB pomocí MongoDump

  4. Redis - uživatelské jméno, heslo a db?