2016-11-30 2 views
0

1.Ich Sie den Artikel in Electro-Array, sondern die ganze docIch versuche, ein einzelnes Array Wert von mongodb zu bekommen, aber wenn ich versuche, bekomme ich das ganze Objekt

getItem(data){ 
    dbswap.findOne(
     { 'swap.Items.Electro.id':data.id, 
     'swap.Items.Electro.id':data.id }, function(err,item){ 
     if(err){ 
      return (err); 
     } 
     if(item){  
      console.log(item);     
     } 

    }); 
} // EOF 

nicht erhalten diese ist mein Schema
1.Ich versuche, das Element zu bekommen, das ich in Electro nur erstelle, ich will nicht das ganze Objekt, das ich im Moment bekomme.

var swapSchema = new mongoose.Schema({ 
swap: { 
    name: String, 
    Items: { 
     Electro: [ 
      { 
       name: String, 
       info: String, 
       price: Number, 
       dateCreated: Date, 
       category: String, 
       id: Number 
       } 
      ] 
     } 
    } 
}); 

Antwort

1

das Projektionsfeld verwenden:

Wenn Sie alle Array erhalten möchten:

dbswap.findOne(
    { 'swap.Items.Electro.id':data.id}, 
    { 'swap.Items.Electro' : 1} 
    , function(err, obj){ 

etwas wie zurück:

{ 
_id: ObjectId("sdfsdfsdf"), 
Electro:[{....},{....}] 
} 

Oder wenn Sie möchten, Nur das Objekt im Array, das der Abfrage entspricht:

dbswap.findOne(
    { 'swap.Items.Electro.id':data.id}, 
    { 'swap.Items.Electro.$' : 1} 
    , function(err, obj){ 

kehrt so etwas wie:

{ 
_id: ObjectId("sdfsdfsdf"), 
Electro:{your match object} 
} 
+0

Vielen Dank !!!! – Pentico

Verwandte Themen