我试图从我的 mongodb 返回一个声明数组,但是当我使用它返回未定义的函数时,我怎样才能将结果作为数组返回?
我一直在stackoverflow中寻找很多关于这个的问题,但没有一个有效..所以请不要向我推荐另一个问题,我看到每件事都有可能搜索了10多个组合来回答这个问题..
module.exports = {
getAllClaims: (userId)=>{
let claims;
Claim.find({'sender':userId}, function (err, docs) {
if(err){
claims = []
console.log(err)
}
if(docs)
{
claims = docs;
console.log('CLAIMS FOUND:',docs)
}
});
return claims;
}
}
当我使用它时它返回 undefined 我已经在我的集合中检查过有一个带有该 id 的声明,那么为什么它返回一个 undefined ?
console.log(getAllClaims(55166212)) // undefined
这是我的架构:
const mongoose = require('mongoose')
const Schema = mongoose.Schema
const claimSchema = new Schema({
sender: Number,
title: String,
content: String,
status:Number, // 0 unreaded,1 in process 2 completed.
date: Date
})
module.exports = mongoose.model('claim', claimSchema, 'claims')
我也一直在尝试,但是它返回一个空数组,但是当我登录有趣的文档时,找到了文档,那为什么它不返回呢?
var cls = [];
Claim.find({'sender':userId}, function (err, docs) {
if(err){
//claims = []
console.log(err)
}
if(docs)
{
docs.forEach(doc=>{
cls.push(doc)
console.log('DOC IS: ',doc)
})
}
});
return cls;