gpt4 book ai didi

javascript - es6 传播运算符 - mongoose 结果副本

转载 作者:可可西里 更新时间:2023-11-01 02:15:17 25 4
gpt4 key购买 nike

我正在使用 mongo DB 和 mongoose 开发一个 express js API。

我想在 Javascript es6 中创建一个由几个变量和 Mongoose 请求的结果组成的对象,并希望使用 es6 传播运算符来实现:

MyModel.findOne({_id: id}, (error, result) => {
if (!error) {
const newObject = {...result, toto: "toto"};
}
});

问题在于将扩展运算符应用于结果以一种奇怪的方式转换它:

newObject: {
$__: {
$options: true,
activePaths: {...},
emitter: {...},
getters: {...},
...
_id: "edh5684dezd..."
}
$init: true,
isNew: false,
toto: "toto",
_doc: {
_id: "edh5684dezd...",
oneFieldOfMyModel: "tata",
anotherFieldOfMyModel: 42,
...
}
}

我有点理解 Mongoose 丰富了对象结果以允许与它进行特定交互,但是当我在这样做之前使用 console.log 时,它描述了一个没有所有这些东西的简单对象。

我不想通过做 ...result._doc 来作弊,因为我抽象了这部分并且它不适合那样。也许有一种方法可以复制一个没有丰富内容的对象。

感谢您的宝贵时间。

最佳答案

您可以使用 Mongoose Document.toObject() 方法。它将返回从数据库中获取的底层纯 JavaScript 对象。

const newObject = {...result.toObject(), toto: "toto"};

您可以阅读有关 .toObject() 方法的更多信息 here .

关于javascript - es6 传播运算符 - mongoose 结果副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48014504/

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