2010-10-04 6 views
6

Come si effettua una ricerca in MongoDB che cerca documenti con una data proprietà?MongoDB Ricerca per nome proprietà per qualsiasi documento con quella proprietà

Quello che voglio fare è trovare tutti i documenti che hanno la proprietà indipendentemente dal suo valore e non mi sembra di essere in grado di farlo. Ho provato il seguente

db.collection.find({"property", null}); //Finds things that don't have that property 
db.collection.find({"proprety", {}}); //Doesn't find anything unless something has the empty object as the value 

Esiste effettivamente una sintassi per questo o dovrei eseguire un'operazione di ridimensionamento della mappa?

risposta

7

Basta invertire la query e la ricerca di documenti in cui la proprietà non è nullo ($ ne non è uguale)

db.collection.find({ property : { $ne : null } }); 
+3

aver cercato un po 'di più si sembra che $ esista anche lo stesso lavoro – RobV

+0

Sei corretto. $ esiste davvero è la strada da percorrere! – halfdan

5

Ecco la risposta del campione utilizzando $ esiste:

db.collection.find({ property : { $exists: true } }); 
Problemi correlati