我是一个Java专家,我只是不明白为什么这行不通。
var results = QuestionEntryService.find( criteria );
while(results.hasNext()) {
result = results.next();
console.log(result);
}
QuestionEntryService.find(条件)返回猫鼬model.Query对象。我可以理解结果没有hasNext(),因为它是mongo函数而不是mongoose。我尝试使用回调,但从未执行过。
已更新: 如果我输入Console.log(结果),则返回
model.Query {_mongooseOptions: Object, _transforms: Array(0), _hooks: Kareem, _executionCount: 0, mongooseCollection: NativeCollection, …}
答案 0 :(得分:0)
当您使用find()时,它会为您提供结果数组。尝试使用猫鼬获取数据的方法也是错误的 所以当你想迭代它的时候
var results = QuestionEntryService.find( {criteria},(err, data)=>{ // this is a callback
for(let iteration of data){
console.log(iteration);
}
});
当您使用回调进行开发时,最终将带您进入回调地狱问题。因此,请尝试使用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);