2012-06-14 12 views
8

Vorrei sapere se esiste un modo per restituire solo il _id, user_id e total senza il documento secondario items.restituisce solo una singola proprietà "_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

selezionare il codice e fare clic sull'icona nella '' {} per far rientrare correttamente, anche dare un'occhiata al [FAQ - le firme] (http://stackoverflow.com/faq#signatures). –

risposta

14

Il secondo parametro di find lets you select fields. Quindi è possibile utilizzare questo (si noti che il campo _id è sempre selezionata in ogni caso):

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

È possibile anche escludere alcuni campi, quindi questo sarebbe equivalente:

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

è possibile escludere campo _id da fare:

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

+1 Penso che si possa escludere esplicitamente anche il campo _id. – Thilo

+0

@Thilo hai ragione, l'ho appena confermato. – McGarnagle

+0

Puoi modificare la tua risposta e chiarire - _id: 0 esclude il campo _id –

Problemi correlati