我想查询一个集合并使用我从另一个查询中获得的某个值更新每个文档,该查询将使用返回文档中的一些信息构建。
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/