小编isa*_*nma的帖子

在猫鼬中将元素推送到数组

我正在尝试将元素推送到 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)

javascript mongoose mongodb node.js mean-stack

3
推荐指数
1
解决办法
1万
查看次数

使用外部 API 调用和 findOneAndUpdate 循环结果

我正在尝试编写一个程序,使用 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。有什么解决办法吗?谢谢

javascript asynchronous mongoose mongodb node.js

2
推荐指数
1
解决办法
650
查看次数