MongoDb count返回与记录计数不同的数量

qzwqbdag  于 2023-04-20  发布在  Go
关注(0)|答案(1)|浏览(129)

虽然我是mongoDb的新手,但我不知道我在哪里犯了错误:

MyDb.find().count() // returns 120
let data = MyDb.find()
let records = []
for (let a of data)
  //adding records
  records.push(a)
}
console.log(records.length) // result: 125

我在这里没有看到什么?我如何通过数据迭代来获得更多的记录?

tzdcorbm

tzdcorbm1#

下面一行返回一个Mongo.Cursor:

let data = MyDb.find()

游标本身只是一个指向数据的“指针”。如果你想迭代游标数据,你应该使用.forEach

MyDb.find().count() // returns 120
let cursor = MyDb.find()
let records = []
cursor.forEach(doc => {
  //adding records
  records.push(doc)
})
console.log(records.length) // result: 120

但是,您可以使用fetch作为Array轻松访问数据:

const cursor = MyDb.find()
cursor.count() // returns 120
let records = cursor.fetch()
console.log(records.length) // result: 120

阅读更多:
https://docs.meteor.com/api/collections.html#mongo_cursor
https://guide.meteor.com/collections.html
https://university.meteor.com/

相关问题