Wie schiebe ich ein Array von Objekten in einem Array in Mungo mit einem Aufruf?
Ich schieben müssen mehrere Werte in ein array in Mungo. Ich versuchte es mit einem kleineren array, aber das array wird immer eingefügt, als ein sub-array.
var kittySchema = new mongoose.Schema({
name: String,
values: [Number]
});
var Kitten = db.model('Kitten', kittySchema);
Kitten.update({name: 'fluffy'},{$push: {values:[2,3]}},{upsert:true},function(err){
if(err){
console.log(err);
}else{
console.log("Successfully added");
}
});
Das Ergebnis der Berufung der obige code dreimal gibt die unten Ergebnis:
{ "_id" : ObjectId("502b0e807809d79e84403606"), "name" : "fluffy", "values" : [ [ 2, 3 ], [ 2, 3 ], [ 2, 3 ] ] }
In der Erwägung, dass, was ich will, ist so etwas wie dieses:
{ "_id" : ObjectId("502b0e807809d79e84403606"), "name" : "fluffy", "values" : [ 2, 3 ,2 ,3, 2, 3] }
Andere Sache, die ich bemerkte, war, dass der Typ im array (die Werte) angegeben ist, als Zahl, dann würde die 'strict' - option sicher, dass etwas anderes als Zahlen sind, werden nicht eingefügt ? In diesem Fall ein anderes array zu dürfen, eingefügt werden.
InformationsquelleAutor der Frage Pranil Dasika | 2012-08-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Veraltet sehen andere Lösung unter Verwendung von $push $je
Dein Beispiel ist nah, aber Sie wollen $pushAll eher als $pushjeder Wert einzeln (anstatt ein anderes array auf die
values
array):InformationsquelleAutor der Antwort Stennie
(Dec-2014 aktualisiert) Seit MongoDB2.4 Sie verwenden sollten:
InformationsquelleAutor der Antwort Amit Portnoy
Oder verwenden Sie die $pro modifier mit $addToSet:
https://docs.mongodb.com/manual/reference/operator/update/addToSet/#each-modifier
InformationsquelleAutor der Antwort Dominic Tobias