2012-06-14 19 views
8

Me gustaría saber si hay una forma de devolver solo _id, user_id y total sin el subdocumento items.devolver solo una propiedad "_id"

{ 
    "_id" : 122, 
    "user_id" : 123456, 
    "total" : 100, 
    "items" : [ 
      { 
        "item_name" : "my_item_one", 
        "price" : 20 
      }, 
      { 
        "item_name" : "my_item_two", 
        "price" : 50 
      }, 
      { 
        "item_name" : "my_item_three", 
        "price" : 30 
      } 
    ] 
} 
+0

Seleccione su código y haga clic en el icono '{}' para sangrar correctamente, también echar un vistazo a la [FAQ - firmas] (http://stackoverflow.com/faq#signatures). –

Respuesta

14

El segundo parámetro de find lets you select fields. Así que usted puede utilizar este (tenga en cuenta que el campo _id se selecciona siempre de todos modos):

db.mycollection.find({}, {"user_id": 1, "total": 1}); 

También puede excluir ciertos campos, por lo que este sería equivalente:

db.mycollection.find({}, {"items": 0}); 

puede excluir campo _id por haciendo:

db.mycollection.find({}, {"user_id": 1, "_id": 0}); 
+1

+1 Creo que también puede excluir explícitamente el campo _id. – Thilo

+0

@Thilo estás en lo correcto, simplemente lo confirmé. – McGarnagle

+0

Puede editar su respuesta y aclarar: _id: 0 excluirá el campo _id –

Cuestiones relacionadas