javascript - mongoose forEach循环并一一更新文档

标签 javascript sql node.js mongodb mongoose

我想查询一个集合并使用我从另一个查询中获得的某个值更新每个文档,该查询将使用返回文档中的一些信息构建。

const mongoose = require('mongoose');
const userModel = {
      country: { type: String }
      newField: { type: String } 
     };
const myUsersModel = mongoose.model('user',userModel); 
myUsersModel.find({country:"USA"}).forEach(function (doc) {

    // another query here into a relation Database:
    let anotherQuery = 'SELECT * FROM myTable WHERE name=' + doc.name;
    mySQLConnection.query(
            anotherQuery,
            function selectCb(err, results, fields) {
                if (err) {
                    console.log("ERROR: " + err.message);
                    throw err;
                }
                console.log("Got "+results.length+" Rows:");
                let updatedInfo = results.SomeField;

                // update the mongoose doc:
                doc.newField = updatedInfo;
                myUsersModel.save(doc);

            });
        mySQLConnection.end(function(err) {
          console.log("connection ended.");
        });
        mongoose.connection.close();
    });

我收到以下错误:

类型错误:myUsersModel.find(...).forEach 不是函数

最佳答案

myUsersModel.find({country:"USA"})
   .then(users=>users.forEach //users might be null here btw

或者如果您想保留回调风格

myUsersModel.find({country:"USA"}, function(err, users) {
  if (err) throw err;
  users.forEach

关于javascript - mongoose forEach循环并一一更新文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49149622/

相关文章:

node.js - 如何在node.js中获取http响应?

node.js - Action 必须是普通对象。使用自定义中间件进行异步操作。如何解决这个问题

javascript - 如何在 Safari 调试器中调试延迟加载的 javascript

java - [Microsoft][ODBC 驱动程序管理器] 游标状态无效

sql - OLAP Cube 部署问题

mysql - 如何在 VB.net 中为 SQL 编码字符串

node.js - 带 nodejs 的 HTTPS 和连接

javascript - 如何使用 JavaScript 中的 this.value 从下拉列表中检查特定值

javascript - 使用 javascript 在 Enterprise Architecture 中批量创建标签

javascript - Materializecss - 带有 materialboxed(灯箱)的 slider ?