在查找结果函数中更新mongo文档

时间:2017-01-18 19:26:27

标签: mongodb mongoose

任何人都可以告诉我这是否是猫鼬合法的。我正在尝试更新学生主文档数组中的子文档。当我从shell运行更新查询时它工作正常,但是从下面的代码中它没有更新数据。

// The array of conditions.
var bools = [true, true, false];

// Check if none of them are true (all fail).
if (bools.indexOf(true) === -1) {
    alert("none");
} else {
// Loop over them and do something based if the current one is true.
bools.forEach(function(b, i) {
    b ? alert("boolean" + (i + 1)) : '';
});
};

2 个答案:

答案 0 :(得分:0)

根据文档https://docs.mongodb.com/manual/reference/method/db.collection.update/ db.collection有几个参数

db.collection.update(
   <query>,
   <update>,
   {
     upsert: <boolean>,
     multi: <boolean>,
     writeConcern: <document>,
     collation: <document>
   }
)

所以你应该做这样的事情:

Student.update({
    'Student._id' : ObjectId('587e6409e06170ba1708dc22'),
    <Your Query>, 
    true, 
    true
})

答案 1 :(得分:0)

根据您的要求,您可以这样做:

db.collection.findOneAndUpdate(
   <filter>,
   <update>,
   {
     projection: <document>,
     sort: <document>,
     maxTimeMS: <number>,
     upsert: <boolean>,
     returnNewDocument: <boolean>
   }
)