Sono nuovo in mongodb e sto provando a interrogare oggetti figlio. Ho una collezione di Stati, e ogni Stato ha Città minori. Una delle città ha una proprietà Name nullo, che causa errori nella mia app. Come posso interrogare le raccolte di stato per trovare città secondarie che hanno un nome == null?come interrogare oggetti figlio in mongodb
risposta
Se è esattamente null
(al contrario di non impostato):
db.states.find({"cities.name": null})
(ma come fa notare javierfp, corrisponde anche documenti che non hanno le città gamma a tutti, sto supponendo che lo fanno).
Se è il caso che la proprietà non è impostata:
db.states.find({"cities.name": {"$exists": false}})
Ho provato quanto sopra con una collezione creata con questi due inserti:
db.states.insert({"cities": [{name: "New York"}, {name: null}]})
db.states.insert({"cities": [{name: "Austin"}, {color: "blue"}]})
La prima query trova la prima stato, la seconda query trova il secondo. Se si desidera trovare tutti e due con una query è possibile effettuare una $or
query:
db.states.find({"$or": [
{"cities.name": null},
{"cities.name": {"$exists": false}}
]})
Assumendo che il "stati" collezione è come:
{"name" : "Spain", "cities" : [ { "name" : "Madrid" }, { "name" : null } ] }
{"name" : "France" }
La query per trovare gli stati con le città nulli sarebbe :
db.states.find({"cities.name" : {"$eq" : null, "$exists" : true}});
E 'un comune errore per interrogare per i null come:
db.states.find({"cities.name" : null});
perché questa query restituirà tutti i documenti privi della chiave (nel nostro esempio restituirà Spagna e Francia). Pertanto, se non si è certi che la chiave sia sempre presente, è necessario verificare che la chiave esista come nella prima query.
- 1. Come interrogare oggetti nidificati?
- 2. Come interrogare MongoDB da R?
- 3. Interrogare un array di array in MongoDB
- 4. Come interrogare in base al tempo in MongoDB con PHP?
- 5. Matrici MongoDB vs oggetti
- 6. Interrogare i documenti nidificati usando Mongoose (MongoDB)
- 7. Migrazione a MongoDB: come interrogare GROUP BY + WHERE
- 8. Come interrogare MongoDB direttamente da Ruby invece di usare Mongoid?
- 9. Interrogare una matrice di oggetti usando linq
- 10. MongoDB incorporati oggetti polimorfici
- 11. Raggruppamento di oggetti figlio in WPF TreeView
- 12. oggetti figlio in rdlc (Studio 2010RC)
- 13. Linq per selezionare oggetti padre in cui oggetti figlio hanno un oggetto figlio corrispondente
- 14. Libreria Java per interrogare raccolte/oggetti
- 15. Come ottenere valori per oggetti figlio usando Dapper ORM?
- 16. MongoDb: Come inserire oggetti aggiuntivi nella raccolta di oggetti?
- 17. Come interrogare una colonna JSON per oggetti vuoti?
- 18. Come cercare in serie di oggetti in MongoDB
- 19. Come posso modificare oggetti figlio in un modulo MVC4?
- 20. MongoDB è orientato agli oggetti?
- 21. Come posso aggiornare/inserire oggetti nell'Elenco interno in Mongodb?
- 22. Come restituire il numero di oggetti aggiornati in mongodb?
- 23. Come interrogare l'entità padre dall'entità figlio in NDB/Datastore di Google App Engine (Python)?
- 24. MongoDB in Go (golang) con mgo: come utilizzare gli operatori logici per interrogare?
- 25. Casbah Scala MongoDB driver - oggetti incorporati
- 26. Come interrogare più tabelle in SQLAlchemy ORM
- 27. Persistere gli oggetti contenenti oggetti con la primavera-dati-mongodb
- 28. MongoDB: ordina la matrice nidificata di oggetti
- 29. Reactjs passando metodi come oggetti di scena a figlio
- 30. Utilizzo di Rails ActiveRecord per interrogare gli oggetti non salvati
La domanda deve chiarire quale linguaggio di programmazione/driver è utilizzato e possibilmente esempi di documenti per rispondere correttamente alle chiamate –
False, sto chiedendo di interrogare direttamente il db, che sia le persone che hanno risposto hanno capito. – Justin