Max*_*huk 3 cursor mongodb node.js
我写了一个查询:
var results = db.collection('diseases').find({
'ttl.txt': {
$regex: data,
$options: 'i'
}
}).toArray();
Run Code Online (Sandbox Code Playgroud)
然后我打印results
到控制台。
if (results.length > 0) {
console.log(results);
}
Run Code Online (Sandbox Code Playgroud)
ToArray方法必须返回找到的文档的数组。但是此方法向我返回了以下字符串:Promise { <pending> }
。
如何返回找到的文档数组而不是此字符串?
toArray:链接到文档
您会收到此错误,因为find()方法是异步的,这就是诺言未决的原因:它仍在获取。
db.collection('diseases').find({
'ttl.txt': {
$regex: data,
$options: 'i'
}
}).toArray().then((data) => {
// Here you can do something with your data
doSomethingWithTheResult(result)
})
Run Code Online (Sandbox Code Playgroud)
请注意,您的数据包含在回调中。有关诺言的更多信息,请检查Promise
根据您的节点版本(我认为是7.6+),您可以使用类似这样的东西
async function getResults() {
return db.collection('diseases').find({
'ttl.txt': {
$regex: data,
$options: 'i'
}
}).toArray();
}
const results = await getResults();
Run Code Online (Sandbox Code Playgroud)
因此,您的代码看起来像是同步代码。此处的关键是等待诺言结果的async / await命令。
希望能帮助到你!
归档时间: |
|
查看次数: |
6869 次 |
最近记录: |