andrescabana86
andrescabana86

Reputation: 1788

how to query in mongodb?

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

Answers (2)

Philipp
Philipp

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

Austin Greco
Austin Greco

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

Related Questions