Я обновляю 100 документов каждую секунду, нажимая новые данные в массив в своем документе. Чтобы получить документ, к которому я собираюсь добавить данные, я использую .find().limit(1)
mongoose .find().limit(1)
и возвращаю весь документ. Он работает нормально.
Чтобы помочь с некоторыми проблемами памяти и процессора, у меня есть, мне было интересно, как я могу find()
чтобы возвращать только id
документа, чтобы я мог использовать это для $ push или $ set new data.
Благодарю.
Вы хотите использовать Projection, чтобы точно рассказать свой запрос о том, что вы хотите от своих объектов.
_id
всегда включается, если вы не говорите ему об этом.
readings = await collection
.find({
name: "Some name you want"
})
.project({
_id: 1 // By default
})
.toArray();
collection.find({}, '_id')
недостаточно?
.project()
так как он более явный.
Вы можете использовать distinct
метод, чтобы получить массив _id
для вашего запроса.
Следуйте этому вопросу
find
является строка, указывающая, какие поля документа включать или исключать. Чтобы включить только_id
используйтеcollection.find({}, '_id')
.