gpt4 book ai didi

node.js - 如何循环 Mongoose 查询?

转载 作者:太空宇宙 更新时间:2023-11-04 01:36:28 25 4
gpt4 key购买 nike

我是一个java人,我只是不明白为什么这不起作用。

var results = QuestionEntryService.find( criteria );
while(results.hasNext()) {
result = results.next();
console.log(result);
}

QuestionEntryService.find( criteria ) 返回一个 mongoose model.Query 对象。我可以理解结果没有 hasNext() 因为它是 mongo 函数而不是 mongoose。我尝试使用回调,但它从未被执行。

更新:如果我 Console.log(results) 它会返回

model.Query {_mongooseOptions: Object, _transforms: Array(0), _hooks: Kareem, _executionCount: 0, mongooseCollection: NativeCollection, …}

最佳答案

当你使用 find() 时,它会给你一个结果数组。并且你尝试使用 mongoose 获取数据的方式也是错误的所以当你想迭代它时尝试这个

var results = QuestionEntryService.find( {criteria},(err, data)=>{ // this is a callback
for(let iteration of data){
console.log(iteration);
}
});

当你使用回调进行开发时,它最终会让你陷入回调 hell 问题。所以尝试使用 Promise 或 async/await (最佳实践)。所以,

async function findData(){
var results = await QuestionEntryService.find({})exec();
console.log(results); // print out the array of results


return results;
}

}

//consume promise
findData().then((results)=>{
for(let iteration of results){
console.log(iteration);
});

架构

YourSchema = new Schema({
you:{},
me:{}
});

const model = module.exports = mongoose.model("model",YourSchema); // export your compiled mode

l

然后从您的路由器访问它

const model = require("./model"); // your file system

model.find({you:"name"},callback);

关于node.js - 如何循环 Mongoose 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54414292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com