0

如果元素尚不存在,我想将元素添加到找到的元素的数组字段中。如何在 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");
    });
});

};

4

1 回答 1

0

您可以为此使用$addToSet

所以在你的例子中:

  collection.update({ name: nameWhere }, { $addToSet: { moods: newItem } }).toArray(function(err, items) {
        if (err) return res.send(500, err);
        res.send("OK");
    });
于 2013-11-04T22:10:12.437 回答