javascript - 为什么 Model.find 不在变量中存储数据?
问题描述
我试图创建和保存新的模型实例,并在我的 MONGODB Atlas 数据库中为每个实例分配一个唯一的 ID。为此,我尝试使用 Model.find() 从我的模型中获取数据并将其存储在一个变量中,我可以在其中循环遍历数组并检查分配的 id 是否已存在于集合对象中。我可以成功记录集合,但似乎我无法将集合数组存储在变量中。
每当我尝试 console.log(dbData) 我得到未定义时,我是否还必须在提交表单时在指向表单操作路径的 get 请求中调用 model.find?
var formModel=mongoose.model("Form-Model", newFormSchema)
let dbData =formModel.find({}, function(err,data){
if(err) console.error(err)
console.log(data)
return data
})
let rndm=2
function isUnique(rndm){
let unique=dbData.some(element=>element.id===rndm)
while(unique){
rndm=Math.floor(Math.random()*10000)
unique=arr.some(element=>element.id===rndm)
}
return rndm
}
app.post("/form-data",function(req,res){
console.log(req.body)
var newForm= new formModel({
output:req.body.output,
id:isUnique(rndm)
})
newForm.save()
res.send("new user submited")
res.end()
})
编辑//////
我在其他地方看到你需要一个promise或async/await来等待model.find完成获取对象数组但是当console.logging(dbData)我得到promise pending时,
async function dbData() {
try{
let dbData= await formModel.find({})
return dbData
}
catch(err){
console.log(err)
}
}
console.log(dbData()) // returns Promise { <pending> }
解决方案
use .then(function(res) //执行代码并从这里异步函数返回结果)
推荐阅读
- python-3.x - Jenkins 管道:运行 python 脚本
- php - 如何根据 PHP 中数组上的邻居特定键创建数组
- spring - 如何处理 Quartz Scheduler 中的失火触发器?
- wordpress - 当自定义字段中有多个值时如何编写wordpress查询
- javascript - 如何删除特定的
- 特定的
- 从几个列表中
- s
- 特定的
- excel - 在 VBA Excel 中使用范围方法时出错(参数设置)
- c++ - 如何刷新 hls::Mat?
- java - 如何使用spring boot security从facebook获取访问令牌
- react-native - 无法读取从clevertap 仪表板发送的推送通知的有效负载
- javascript - 如何在我的 html 中调用我的 JS 文件中的函数?