gpt4 book ai didi

javascript - 从 MongoDB 中的模式内部返回一个 json

转载 作者:行者123 更新时间:2023-11-30 11:40:43 25 4
gpt4 key购买 nike

我有以下文件:

{
"id": "someString",
"servers": [
{
"name": "ServerName",
"bases": [
{
"name": "Base 1",
"status": true
},
{
"name": "Base 2",
"status": false
}
]
}
]
}

我想创建一个 API 路由来获取一个仅包含状态为 true 的碱基名称的 json。

我当前项目的依赖项是:

"dependencies": {
"basic-auth": "^1.1.0",
"body-parser": "~1.0.1",
"express": "~4.0.0",
"mongoose": "~4.6.8",
"mongoose-unique-validator": "^1.0.4",
"morgan": "~1.0.0"
}

感谢任何帮助!谢谢!

@编辑

忘了说,我正在使用 mongoose.Schema 来构建对象:

var ClienteSchema = new Schema({
id: { type: String, required: true, unique: true },
servers: [{
nome : String,
bases: [{
nome: String,
status: Boolean
}]
}]
});

困难在于导航到 Cliente > servers > bases 以获取 status 并返回基地的 nome... :(

最佳答案

您可以使用以下聚合。

以下查询使用 $map遍历 servers 数组并保留 name 并后跟 $filter保持 basesstatus 值为 true 以转换输出。

Model.aggregate({
$project: {
id: 1,
servers: {
$map: {
input: "$servers",
as: "server",
in: {
name: "$$server.name",
bases: {
$filter: {
input: "$$server.bases",
as: "base",
cond: {
$eq: ["$$base.status", true]
}
}
}
}
}
}
}
}).exec(function(err, user) {
console.log(JSON.stringify(user));
})

示例响应:

{
"id": "someString",
"servers": [{
"name": "ServerName",
"bases": [{
"name": "Base 1",
"status": true
}]
}]
}

关于javascript - 从 MongoDB 中的模式内部返回一个 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42786420/

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