使用$http.get(mongoose with nodejs)在嵌套的JSON中获取数组
Getting an array inside a nested JSON using $http.get (mongoose with nodejs)
我有一个JSON,它表示公寓列表:
{
"_id": {
"$oid": "5673d1dcf93fe452d80c2c2c"
},
"street": "myStreet",
"buildingNumber": 1,
"apartmentNumber": 1,
"UsersAndQuestions": [
{
"userID": "5673afe4cb62303816bd3d5c",
"questionID": [
"5669d90a058ceddc158e97e2",
"4668d80b158ceggc158e97f2"
]
}
]
}
我想得到某个userID
的questionID
数组
我正在使用这个http.get
来尝试获得它:
app.get('/api/listing/getQuestionsOfUserInListing/:userid/:listingid', function (req, res) {
var user = req.params.userid;
var listing = req.params.listingid;
Listing.find({
$and: [
{_id: listing},
{'UsersAndQuestions.userID': user}
]
}
, function (err, result) {
res.json(result);
});
});
但我只是得到整个JSON(正是我在问题开头发布的那个)
如何仅获得"questionID": ["5669d90a058ceddc158e97e2", "4668d80b158ceggc158e97f2"]
?
谢谢!
如前所述,您可以使用这样的投影:
Listing.findOne( {_id: listing, 'UsersAndQuestions.userID': user},
{_id: 0, 'UsersAndQuestions.$': 1},
function (err, result) {
res.json(result.UsersAndQuestions[0].questionID);
});
附言:我也看不出你有什么理由需要在这里使用$和运算符。来自文件:
复合查询可以为集合文档中的多个字段指定条件。隐含地,逻辑AND连接符连接复合查询的子句,以便查询选择集合中符合所有条件的文档。
相关文章:
- 访问嵌套JSON对象的键,其中键是动态的
- 从多维嵌套json数组创建下拉列表
- 带嵌套json的下划线js查找
- 返回嵌套JSON中包含特定键的所有值
- 嵌套JSON到平面HTML表
- 原型Ajax请求参数为嵌套json
- 从对象数组中动态创建嵌套json
- ExtJS 4.1-检索嵌套JSON的hasOne信息
- 更新嵌套json Angularjs中的对象
- 访问嵌套 json 对象的属性将返回未定义
- 如何解析没有键的嵌套json's的javascript
- 显示嵌套json集合的主干
- 列表中呈现的骨干嵌套json对象
- 如何使用promise来反规范化嵌套json
- 正在读取嵌套json,jquery返回undefined
- Ionic/Angular:如何在嵌套json中导航
- 如何访问AngularJs中的嵌套Json对象
- 使用Javascript查找并更新嵌套JSON数组和对象中的所有键值
- 如何获取给定表单详细信息的嵌套json对象
- 通过Javascript中的递归迭代映射嵌套JSON