在数组中插入或更新对象元素

时间:2015-03-17 02:59:53

标签: node.js mongodb mongoose

使用以下架构:

var postSchema = new Schema({
    id:        { type: String,  default: ''       },
    owner:     { type: String,  default: null     },
    votes:    [{ owner: Number, vote: Number      }],
});

如果具有votes的元素不存在,我想将元素推送到owner数组。如果是,我想更新该元素。

我目前的代码:

Post.findByIdAndUpdate(
    req.params.post_id,
    { $push: { votes: { owner: owner, vote: vote }}},
    { safe: true, upsert: true },
    function(err) {
        if (err) {
            res.send(err);
            console.log(err);
        }
    }
);

然而,这将无休止地插入新元素。是否可以通过一个请求执行此操作,或者我是否必须依赖多个请求和if-thens?

0 个答案:

没有答案