如何使用Mongoose an MongoDB 2.6 插入到子文档中数组中的某个位置

Rom*_*man 2 mongoose mongodb mongodb-query

我的问题$position答案中给出了如何通过使用 Mongoose来使用Mongodb 2.6 的new运算符的很好的解释。建议的解决方案非常适合简单的数组。如果数组在子文档中或数组的每个元素都是数组,则建议的解决方案不起作用。我的意思是这样的:

List.collection.update(
{/*....*/},
{ "$push": {
    "subdocument.list": {
      "$each": [ 1, 2, 3 ],
      "$position": 0 }
    }
},function(err,NumAffected) {
  console.log("done");

});
Run Code Online (Sandbox Code Playgroud)
List.collection.update(
{/*....*/},
{ "$push": {
    "list1.$.list2": {
      "$each": [ 1, 2, 3 ],
      "$position": 0 }
    }
},function(err,NumAffected) {
  console.log("done");

});
Run Code Online (Sandbox Code Playgroud)

Fes*_*sto 5

在当前的猫鼬版本 (4.4.2) 中,您可以position像这样使用:

Foo.update(query.id,
    {
        $push: {
            arrayData: {
                $each: [{                       
                    date: new Date
                }], $position: 0 
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)