【发布时间】:2015-07-26 20:59:17
【问题描述】:
我正在尝试将对象 id 添加到 mongoose (Node.js) 中的数组中。这是我的代码:
app.post('/api/users/:userId/favorites/:objectId', function(req, res, next) {
User.findByIdAndUpdate(req.params.userId, {$addToSet: {user_favorites: req.params.objectId}}, {safe: true, upsert: true}, function(err, data){
if (err) return res.status(500).send(err)
res.status(200).send({'message':'saved'});
})
})
这是我的模型:
module.exports = mongoose.model('User',{
...
user_favorites: [{ type: mongoose.Types.ObjectId, ref: 'Property' }],
...
})
没有返回错误,但没有将 id 添加到数组中。我错过了什么?
【问题讨论】:
-
您还向数组/集合添加了一个字符串。您需要将其转换为
ObjectId。var id = mongoose.Types.ObjectId(req.params.objectId);。您还需要验证用户输入的格式,它必须是 12 个字节的单个字符串或 24 个十六进制字符的字符串。或者捕获错误。
标签: node.js mongodb mongoose mongodb-query