我想将元素添加到找到元素的数组字段中(如果它尚不存在)。如何在ExpressJS + MongoDB中执行此操作?
我的文档架构:
{ "name" : "Paul",
"year" : "2013",
"artist" : "SomeArtist",
"moods" : [ "angry", "furious" ],
"_id" : ObjectId("526fe5676f066d0353000002") }
我想将元素添加到情绪数组中,如果它还不存在的话。 如何在expressJS中做到?
我已经编写了一个函数,它允许将元素添加到数组中:
exports.setMood = function(req, res) {
var nameWhere = req.body.name;
var newItem = req.body.mood;
db.collection('tracks', function(err, collection) {
collection.update({ name: nameWhere }, { $push: { moods: newItem } }).toArray(function(err, items) {
if (err) return res.send(500, err);
res.send("OK");
});
});
};
答案 0 :(得分:0)
您可以使用$addToSet:
所以在你的例子中:
collection.update({ name: nameWhere }, { $addToSet: { moods: newItem } }).toArray(function(err, items) {
if (err) return res.send(500, err);
res.send("OK");
});