Javascript 仅返回mongoose.find()上的文档_id

Javascript 仅返回mongoose.find()上的文档_id,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我通过将新数据推送到文档中的数组,每秒更新100个文档。为了获取要向其中添加数据的文档,我使用mongoose.find().limit(1)函数,并返回整个文档。它很好用 为了解决我遇到的一些内存和cpu问题,我想知道如何让find()只返回文档的id,这样我就可以使用它来$push或$set新数据 谢谢。您想使用它准确地告诉您的查询您想要从对象中得到什么 \u id始终包含在内,除非您告诉它不要 readings = await collection .find({ name: "S

我通过将新数据推送到文档中的数组,每秒更新100个文档。为了获取要向其中添加数据的文档,我使用mongoose
.find().limit(1)
函数,并返回整个文档。它很好用

为了解决我遇到的一些内存和cpu问题,我想知道如何让
find()
只返回文档的
id
,这样我就可以使用它来$push或$set新数据

谢谢。

您想使用它准确地告诉您的查询您想要从对象中得到什么

\u id
始终包含在内,除非您告诉它不要

readings = await collection
.find({
    name: "Some name you want"
})
.project({
    _id: 1 // By default
})
.toArray();

您可以使用
distinct
方法为查询获取
\u id
数组


Follow

find函数的第二个参数是一个字符串,指定要包括或排除的文档字段。只包含
\u id
使用
collection.find({},'u id')
collection.find({},'u id')
是不够的?@alexmac我认为这也行得通(尽管第二个参数可能需要是一个对象),但我喜欢
.project()
,因为它更显式。是否有任何方法返回id和长度文档中数组的长度?或者在这种情况下我最好返回整个文档?@Manu length of what?单个文档上的数组属性?我不确定。@alexmac您知道两种形式之间是否存在性能差异吗?