gpt4 book ai didi

json - 使用 ID 作为索引将数组转换为 JSON (MongoDB/Express)

转载 作者:太空宇宙 更新时间:2023-11-03 23:19:51 24 4
gpt4 key购买 nike

我的 mongodb 数据库中有一个用于保存用户的用户架构。在 Mongoose 中我写:

const userSchema = new Schema({
email: { type: String, unique: true, lowercase: true},
password: String,
fname: String,
lname: String,
articles: [{
type: Schema.Types.ObjectId,
ref: "article"
}]
})

我已将一些用户保存到该集合中。当我查询用户的 api 时,我会返回一个 User 对象的数组。就像这样:

[
{
"first_name": "Bob",
"_id": "5b36292760afa11b9a216945",
"email": "user@mail.de",
"__v": 0
},
{
"first_name": "Lisa",
"_id": "5bafkjahf123123123123125",
"email": "lisa@mail.de",
"__v": 0
}
]

这是正常行为吗?这是来自 Mongo 方面还是来自 Express 方面?我听说这样的事情比较常见:

{
"5b36292760afa11b9a216945":{
"first_name": "Bob",
"email": "user@mail.de",
"__v": 0
},
"5bafkjahf123123123123125":
{
"first_name": "Lisa",
"email": "lisa@mail.de",
"__v": 0
}
}
  • ?我怎样才能将我的数组转换为这种 JSON? mongo 中是否有一些功能可以为我做到这一点?

最佳答案

我认为你无法从 mongo 获取这样的对象,但使用 Array.reduce() 转换它并不难。

let returnedValue = [{"first_name": "Bob","_id": "5b36292760afa11b9a216945","email": "user@mail.de","__v": 0},{"first_name": "Lisa","_id": "5bafkjahf123123123123125","email": "lisa@mail.de","__v": 0}]

let result = returnedValue.reduce((a, c) => (a[c._id] = c, a), {})
console.log(result)

这会将 _id 保留在原始对象中,但如果您需要在reduce函数内部。

关于json - 使用 ID 作为索引将数组转换为 JSON (MongoDB/Express),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51125294/

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