【发布时间】:2017-08-04 19:32:30
【问题描述】:
我有以下文件:
{
"id": "someString",
"servers": [
{
"name": "ServerName",
"bases": [
{
"name": "Base 1",
"status": true
},
{
"name": "Base 2",
"status": false
}
]
}
]
}
我想创建一个 API 路由来获取一个 json,其中只包含状态为 true 的碱基名称。
我当前项目的依赖项是:
"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... :(
【问题讨论】:
-
您是否尝试过在 find 方法中使用带有一些查询参数的 db.find()?
-
db.yourcollection.find({servers : {bases : {status : true}}});应该返回你想要的所有值
-
@mnemosdev 我有这个:
router.route('/backup/:id') .get(auth, (req,res) => { Cliente.find({ id : req.params.id }, (err, result) => { (err) ? res.send(err) : res.json(result); }); }); -
该查询返回单个 json 对象,而不是要从中搜索的对象集合
-
你有 2 个选项,第一个也是最简单的方法是在从 mongoDB 取回节点后处理节点中的数据,第二个是在 mongoDB 中进行查找聚合
标签: javascript json node.js mongodb mongoose