我正在尝试从MongoDB数据库中的集合中获取满足特定条件的多个文档。当我使用findOne()时,它完全正常并返回遵循条件的第一个文档,但find()没有返回所有文档。我已经检查了很多网站和文档,但仍然没有找到很好的例子来说明它是如何完成的。这是我正在尝试的当前语法:
db.collection('mycollection').find({someproperty :
somevalue}).then((docs)=>{
// trying to do something with the returned documents 'docs'
}
另外,我真的更喜欢非猫鼬解决方案,除非使用普通的MongoDB绝对不可能。我知道使用猫鼬可能更容易,但我想知道MongoDB的实现。
答案 0 :(得分:1)
在Mongo Docs中,find
函数返回cursor
。
指向符合查询条件的文档的光标。当find()方法“返回文档”时,该方法实际上是将光标返回给文档。
我猜你期待一个阵列?您需要使用toArray
函数,其文档为https://mongodb.github.io/node-mongodb-native/api-generated/cursor.html#toarray
不幸的是,这是一个回调,没有承诺实施,所以你需要自己承诺。
return new Promise((resolve, reject) => db.collection('mycollection')
.find({someproperty : somevalue})
.toArray((err, documents) => resolve(documents)));