我使用mongoose
作为JSON Schema
和node.js
。不用说,我对两者都不熟悉。我一直在苦苦挣扎,让这件事对我有用,但无法做到。最后,唯一的解决方案是从这里的一些真正的好人那里得到帮助。
这是我的架构定义 -
UserName = {
"properties": {
userURL: {
"description": "URL of this resource",
"type": "string"
},
userName : {
"description": "UserName",
"type": "string",
"required": true
},
}
}
当我对它进行调用时,它会以下列格式返回响应 -
[
{
"_id": "54c5ede55c82c4bd6abee50a",
"__v": 0,
"properties": {
"userURL": "http://localhost:3000/54c1d6ae441ae900151a6520",
"userName ": "testUser"
}
}
]
现在我的要求是以下列格式返回响应 -
[
{
"_id": "54c5ede55c82c4bd6abee50a",
"userURL": "http://localhost:3000/54c1d6ae441ae900151a6520",
"userName ": "testUser"
}
]
即没有版本和属性标签。我能够使用以下代码逃脱版本,但属性似乎是棘手的事情 -
.get(function(request, response) {
UserSchemaModel.find().select('properties.userURL properties.userName').exec (function (err, resObj) {
if (err)
response.send(err);
else{
response.json(resObj);
}
});
});
但它仍然有属性字段:( -
[
{
"_id": "54c5ede55c82c4bd6abee50a",
"properties": {
"userURL": "http://localhost:3000/54c1d6ae441ae900151a6520",
"userName ": "testUser"
}
}
]
我在猫鼬周围select as
,alias name in select
,population
做了一些谷歌,但没有运气。
请建议。最诚挚的问候。
答案 0 :(得分:0)
只需制作一个新对象
response.json(
{
"_id": resObj["_id"],
"userURL": resObj["properties"]["userUrl"],
"userName": resObj["properties"]["userName"]
}
);
更新:由于resObj是一个数组(根据您的评论),您可以使用Array.prototype.map()
将其转换为正确的格式,如下所示:
response.json( resObj.map(function(o){
return {
"_id": o["_id"],
"userURL": o["properties"]["userUrl"],
"userName": o["properties"]["userName"]
};
})
);
这将返回一个转换对象列表,然后将其传递给response.json()
方法。