我的问题是,为什么该watchlistSchema.update(function (error) { { $push: { watchlist: req.body.stockAdded } }});
行不更新watchlist属性的现有架构?当我使用此更新时,什么也没有发生,并且它返回null。当我将其更改为watchlistSchema.save时,它可以工作,但是会创建完全不同的文档。我想基本上检查用户和监视列表,如果它们都存在,我想将一个字符串推入监视列表数组。我是猫鼬的新手,所以有点令人困惑。
var Schema = mongoose.Schema;
var watchlistSchema = new Schema({
watchlist: [{ }],
user: String
});
var Watchlist = mongoose.model('Watchlist', watchlistSchema, "watchlist");
app.post('/watchlistPost', function (req, res) {
var watchlistSchema = Watchlist({
'watchlist': req.body.stockAdded,
'user': req.user.username
});
Watchlist.findOne({
$and: [{
'watchlist': req.body.stockAdded,
}, {
'user': req.user.username
}]
}, function (err, list) {
if (list) {
res.status(200).send({ "success": "Updated Successfully", "status": 200 });
} else {
if (req.user) {
watchlistSchema.update(function (error) {
{ $push: { watchlist: req.body.stockAdded } }
});
} else {
}
}
})
});
您的更新语句需要包含“查找”查询。因此,它可以将更新条件应用于与指定查询匹配的所有文档。
将您的代码更改为:
var Schema = mongoose.Schema;
var watchlistSchema = new Schema({
watchlist: [{ }],
user: String
});
var Watchlist = mongoose.model('Watchlist', watchlistSchema, "watchlist");
app.post('/watchlistPost', function (req, res) {
var watchlistSchema = Watchlist({
'watchlist': req.body.stockAdded,
'user': req.user.username
});
var query = {
$and: [{
'watchlist': req.body.stockAdded,
}, {
'user': req.user.username
}]};
Watchlist.update(query, { $push: { watchlist: req.body.stockAdded } }, ==your callback to check stuff==);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句