gpt4 book ai didi

node.js - Mongoose .find 查询结果包含查询元数据?不能只手动投影集合的每个属性,如何只获取文档?

转载 作者:可可西里 更新时间:2023-11-01 10:45:01 26 4
gpt4 key购买 nike

<分区>

我的一系列文档 looks like this一旦从后端检索:

41:
$__: {strictMode: true, selected: {…}, shardval: null, saveError: null, validationError: {…}, …}
$init: true
$locals: {}
errors: {undefined: {…}, files: {…}}
isNew: false
_doc: {status: "Finished", isOnHold: false, requirements: Array(0), files: Array(0), reportFileIds: Array(1), …}
__proto__: Object

每个项目的实际文档都在 _doc 下。这是 mongoose.Find 查询的结果:

        let query = Job.find({
_id: {
$in: data.jobs
}
});

let result = await query.exec();

现在,如果我尝试在发送之前获取该结果数组的项目,它看起来不像在前端实际建模的内容,这很奇怪。

有什么方法可以使用 mongoose.find 获取纯文档数组吗?我不能使用聚合查询,因为我不想手动投影每个可能的属性。

编辑:

这不是大声喊叫的重复,传播语法与它无关,你看到我在任何地方提到传播语法吗?这个和mongoose驱动有关。

Edit2:我最终遍历数组并在每个项目上调用 .toObject:

        let jobs = await query.exec();
let result = [];
for (let doc of jobs) {
result.push(doc.toObject());
}
return result;

Edit3:最终调用了 query.lean().exec(),它做了正确的事情。我过去基于一个可能已经过时的 stackoverflow 示例使用精益部分作为参数,它只会返回文档的 ID。但是像上面那样调用它可以正常工作。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com