我正在尝试将元素推送到 mongoose 中的数组。我正在用更新和 $push 来做。但它没有在数据库中更新它。这是我的代码。路线.js:
var Chooser = require('../chooser');
var appRouter = function(app) {
app.put("/chooser/:id", function(req, res) {
console.log("ID: ", req.params.id);
if (!req.body.toFollow) {
return res.send({"status": "error", "message": "The account that you want to follow is needed"});
}
else {
console.log("Cuenta: ", req.body.toFollow);
Chooser.update({_id: req.params.id}, {$push: {accounts: {"name": "foo", "idAccount": 123456}}});
return res.send({"status": "ok"});
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是我的猫鼬模式。选择器.js:
var mongoose = require('mongoose');
var chooserSchema = mongoose.Schema({
_id: Number,
accounts: [{name: String, idAccount: Number}]
}, { _id: false });
var Chooser …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个程序,使用 mongoose 从 mongo 数据库获取文档,并使用 API 处理它们,然后使用处理结果编辑数据库中的每个文档。我的问题是我遇到问题是因为我不完全理解nodejs和异步。这是我的代码:
Model.find(function (err, tweets) {
if (err) return err;
for (var i = 0; i < tweets.length; i++) {
console.log(tweets[i].tweet);
api.petition(tweets[i].tweet)
.then(function(res) {
TweetModel.findOneAndUpdate({_id: tweets[i]._id}, {result: res}, function (err, tweetFound) {
if (err) throw err;
console.log(tweetFound);
});
})
.catch(function(err) {
console.log(err);
})
}
})
Run Code Online (Sandbox Code Playgroud)
问题是在 findOneAndUpdate 中,tweets 未定义,因此无法找到该 id。有什么解决办法吗?谢谢