2017-02-06 1 views
1

Dies ist meine User Collectionhinzufügen Array verschachtelte Array vorhandenen ohne Duplikate MongoDB

{ _id: ObjectId("589803bf53860d4a3475afa3"), 
    "username": "fadeltd", 
    "gender": "Male", 
    "updatedAt": ISODate("2017-02-06T05:03:59.969Z"), 
    "createdAt": ISODate("2017-02-06T05:03:59.969Z"), 
    "shoppingList": [{ 
     "title": "Personal List", 
     "ingredients": ["5 Eggs"] 
    }] 
}) 

Was ich versuche zu tun ist, Daten zu meiner Einkaufsliste zu schieben, mit $addToSet so, dass es keine doppelten Einkaufen sein Listendaten

Das ist mein Skript

User.update({ 
     _id: ObjectId("589803bf53860d4a3475afa3"), 
     'shoppingList.title': "Personal List" 
    }, 
    { 
     $addToSet: { 
      "shoppingList.$.ingredients": ["5 Eggs", "3 Milks"] 
     } 
    }) 

Aber wenn ich das Skript versuchen, bekomme ich diese

{ _id: ObjectId("589803bf53860d4a3475afa3"), 
    "username": "fadeltd", 
    "gender": "Male", 
    "updatedAt": ISODate("2017-02-06T05:03:59.969Z"), 
    "createdAt": ISODate("2017-02-06T05:03:59.969Z"), 
    "shoppingList": [{ 
     "title": "Personal List", 
     "ingredients": ["5 Eggs", ["5 Eggs", "3 Milks"]], 
    }] 
}) 

möchte ich die Zutaten ["5 Eggs", "3 Milks"] anstelle von verschachtelten Array sein ["5 Eggs", ["5 Eggs", "3 Milks"]]

Antwort

1

Verwenden Sie den $each Modifikator, der Sie mehrere Werte in ein Array

User.update(
    { 
     "_id": ObjectId("589803bf53860d4a3475afa3"), 
     "shoppingList.title": "Personal List" 
    }, 
    { 
     "$addToSet": { 
      "shoppingList.$.ingredients": { 
       "$each": ["5 Eggs", "3 Milks"] 
      } 
     } 
    } 
) 
hinzufügen können
Verwandte Themen