2017-06-20 21 views
0

Stellen Sie sich vor ich habe Datenbank wieWie in Array neues Feld schieben MongoDB

{ 
    "_id" : ObjectId("594994d1ab6c161168aa5969"), 
    "user_id" : ObjectId("594994d1ab6c161168aa5968"), 
    "active" : [ 
     { 
      "type" : "active" 
     }, 
     { 
      "type" : "inactive" 
     } 
    ] 
} 

ich in aktive Array zum ersten Objekt hinzufügen möchten. Hier ist Ergebnis, das ich erwartet

{ 
    "_id" : ObjectId("594994d1ab6c161168aa5969"), 
    "user_id" : ObjectId("594994d1ab6c161168aa5968"), 
    "active" : [ 
     { 
      "type" : "active", 
      "note": [{ 
          content: 'here is content', 
          title : ' here is title' 
         }] 
     }, 
     { 
      "type" : "inactive" 
     } 
    ] 
} 

Hier Code habe ich versucht,

db.collection('..').update({'user_id' : ObjectId(userId)} , 
{$push:{ "active.0": "note": [{ 
           content: 'here is content', 
           title : ' here is title' 
         }] }) 

Aber ich bekomme The field 'active.0' must be an array but is of type object in document. Wo ist mein Fehler? Bitte helfen

+1

Sollte '{$ push: {" active.0.note ": {content: 'hier ist content', title: 'hier ist title'}}}' –

+0

@NeilLunn Ich habe es versucht und es neues Feld erstellen aktiv [0] in db –

+0

@NeilLunn Ich möchte es zum ersten Objekt des Arrays aktiv hinzufügen –

Antwort

1

mit Ihrem Dokument starten wie folgt aus:

{ 
    "_id" : ObjectId("594994d1ab6c161168aa5969"), 
    "user_id" : ObjectId("594994d1ab6c161168aa5968"), 
    "active" : [ 
     { 
      "type" : "active" 
     }, 
     { 
      "type" : "inactive" 
     } 
    ] 
} 

Sie führen die $push wie folgt aus:

db.collection.update(
    { "_id" : ObjectId("594994d1ab6c161168aa5969") }, 
    { "$push":{ "active.0.note": { content: 'here is content', title : ' here is title' } } } 
) 

Welche das neue Array innerhalb des ersten Elements erzeugt etwa so:

{ 
     "_id" : ObjectId("594994d1ab6c161168aa5969"), 
     "user_id" : ObjectId("594994d1ab6c161168aa5968"), 
     "active" : [ 
       { 
         "type" : "active", 
         "note" : [ 
           { 
             "content" : "here is content", 
             "title" : " here is title" 
           } 
         ] 
       }, 
       { 
         "type" : "inactive" 
       } 
     ] 
} 

Alles hier ist aus meiner Shell geschnitten und einfügen.

Verwandte Themen