Ich muss mehrere Werte in einem Array in Mungo mit einem Anruf schieben. Ich versuchte es mit einem kleineren Array, aber das Array wird als Sub-Array eingefügt.Wie schiebe ich ein Array von Objekten in einem Array in Mungo mit einem Anruf?
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 des obigen Code Aufruf gibt dreimal das folgende Ergebnis:
{ "_id" : ObjectId("502b0e807809d79e84403606"), "name" : "fluffy", "values" : [ [ 2, 3 ], [ 2, 3 ], [ 2, 3 ] ] }
Während was ich will, ist so etwas wie dieses:
{ "_id" : ObjectId("502b0e807809d79e84403606"), "name" : "fluffy", "values" : [ 2, 3 ,2 ,3, 2, 3] }
Eine andere Sache, ich war aufgefallen, dass der Typ im Array (Werte) wird als Zahl angegeben, dann würde die "strikte" Option sicherstellen, dass nichts anderes als Zahlen eingefügt wird? In diesem Fall darf ein anderes Array eingefügt werden.
NB: // www: Sie auch auf [$ addToSet] (http aussehen mögen .mongodb.org/display/DOCS/Updating/# Updating-% 24addToSetand% 24each), mit denen nur Werte zu einem Array hinzugefügt werden können, wenn sie nicht bereits vorhanden sind. – Stennie
Danke Stennie! Das funktioniert. Ich habe diesen Teil in der Dokumentation verpasst. –
@Stennie Dies funktioniert nur für einzelne Elemente, nicht für die Verkettung von Arrays. – Tom