Мне нужно нажать несколько значений в массив в мангусте, используя один вызов. Я попытался сделать это с помощью меньшего массива, но массив вставлен в качестве подматрицы.
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");
}
});
Результат вызова вышеупомянутого кода трижды дает следующий результат:
{ "_id" : ObjectId("502b0e807809d79e84403606"), "name" : "fluffy", "values" : [ [ 2, 3 ], [ 2, 3 ], [ 2, 3 ] ] }
В то время как я хочу, это примерно так:
{ "_id" : ObjectId("502b0e807809d79e84403606"), "name" : "fluffy", "values" : [ 2, 3 ,2 ,3, 2, 3] }
Еще одна вещь, которую я заметил, это то, что тип в массиве (значения) задан как Number, тогда не будет ли "строгая" опция гарантировать, что ничего, кроме Numbers, не будет вставлено? В этом случае разрешается вставлять другой массив.