gpt4 book ai didi

javascript - MongoDB:.exec() promise :必须使用 .doc 从 Object.assign() 获取文档

转载 作者:行者123 更新时间:2023-11-28 17:38:50 25 4
gpt4 key购买 nike

我有一个如下所示的图书架构:

{
title: String,
name: {
enVersion: String,
frVersion: String
}
}

我用这个返回一个书籍列表,我用版本的值替换名称字段,该版本存储在版本变量中。

Book
.find(query)
.exec()
.then(books => _.map(books, b => Object.assign({}, b, { name: b.name[version])))
.then(books => reply(books))
.catch(err => reply(err))

问题是,Object.assign() 返回的对象似乎来自另一个星球。为了让它工作,我必须用以下内容替换该行:

.then(books => _.map(books, b => Object.assign({}, b._doc, { name: b._doc.name[version])))

我知道应该采取不同的方式,请帮忙。

最佳答案

由于您正在使用 mongoose 并且希望使用普通对象,因此您可能需要将代码更改为如下所示:

Book
.find(query)
.exec()
.then(books => _.map(books, b => b.toObject()) // The important line
.then(books => _.map(books, b => Object.assign({}, b, { name: b.name[version])))
.then(books => reply(books))
.catch(err => reply(err))

toObject 的调用会将您的 Book 文档转换为纯 JavaScript 对象,而无需任何 Mongoose 特定逻辑。

关于javascript - MongoDB:.exec() promise :必须使用 .doc 从 Object.assign() 获取文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48445980/

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