Reputation: 1788
i have this document in my collection foo
provincia:
{
cod_provincia:5,
nom_provincia:'Cordoba'
},
localidad:
{
cod_localidad:107,
nom_localidad:'Cordoba'
},
barrio:
{
cod_barrio:0,
nom_barrio:'Nva Cordoba'
}
i query in mongo prompt like this
db.foo.find(
{
provincia:
{
cod_provincia:5,
nom_provincia:'Cordoba'
},
localidad:
{
cod_localidad:107,
nom_localidad:'Cordoba'
},
barrio:
{
cod_barrio:0,
nom_barrio:'Nva Cordoba'
}
})
i have this result in my console
_id("5041a53dd163651512000001")
but when i query
db.foo.find(
{
provincia:
{
cod_provincia:5
},
localidad:
{
cod_localidad:107,
nom_localidad:'Cordoba'
},
barrio:
{
cod_barrio:0,
nom_barrio:'Nva Cordoba'
}
})
i have nothing... why is that??? im trying to understand how can i query all documents without nom_provincia
tnx all
Upvotes: 3
Views: 124
Reputation: 69703
The part
provincia:
{
cod_provincia:5
},
searches for a document where the provincia sub-object looks exactly like that, without the nom_provincia field. Use the dot notation instead:
'provincia.cod_provincia':5,
Upvotes: 1
Reputation: 33554
You need to use the dot notation to reach into nested objects:
db.test.find({
'provincia.cod_provincia': 5,
localidad: {
cod_localidad:107,
nom_localidad:'Cordoba'
},
barrio: {
cod_barrio:0,
nom_barrio:'Nva Cordoba'
}
})
More info here
Upvotes: 2