Mongodb 重新排列填充的json导致猫鼬
对于Post.find().populate(“name”)的简单json响应将返回json结果,如下所示。注意:问题的焦点是将json中的“name”:“Alex”重新排列为最终结构,如图所示。忽略需要隐藏id和v的部分。谢谢Mongodb 重新排列填充的json导致猫鼬,mongodb,mongoose,Mongodb,Mongoose,对于Post.find().populate(“name”)的简单json响应将返回json结果,如下所示。注意:问题的焦点是将json中的“name”:“Alex”重新排列为最终结构,如图所示。忽略需要隐藏id和v的部分。谢谢 [ { "_id": "54cd6669d3e0fb1b302e54e6", "title": "Hello World", "postedBy": { "_id": "54cd6669d3
[
{
"_id": "54cd6669d3e0fb1b302e54e6",
"title": "Hello World",
"postedBy": {
"_id": "54cd6669d3e0fb1b302e54e4",
"name": "Alex",
"__v": 0
},
"__v": 0
},
...
]
我如何重新排列和显示整个json,如下所示
[
{
"_id": "54cd6669d3e0fb1b302e54e6",
"title": "Hello World",
"name": "Alex"
},
...
]
您可以使用方法返回纯JSON对象(不是mongoose文档),然后可以使用lodash助手方法(如)对其进行操作,如以下示例所示:
Post.find()
.populate("name")
.lean().exec(function (err, result) {
if(result){
var posts = _.map(result, function(p) {
p.name = p.postedBy.name;
p.postedBy = undefined;
return p;
});
console.log(posts);
}
});
通过将versionKey
选项设置为false,可以禁用架构定义中的“\uv”
属性。例如:
var postSchema = new Schema({ ... attributes ... }, { versionKey: false });
关于重新排列JSON中属性的顺序的问题,JS没有定义对象属性的顺序。然而,你 例如,可以同时使用和方法来更改顺序
var json = {
"name": "Alex",
"title": "Hello World",
"_id": "54cd6669d3e0fb1b302e54e6"
};
console.log(json);
//change order to _id, title, name
var changed = JSON.parse(JSON.stringify(json, ["_id","title","name"] , 4));
console.log(k);
查看下面的演示
var json={
“姓名”:“亚历克斯”,
“标题”:“你好,世界”,
_id:“54cd6669d3e0fb1b302e54e6”
};
//将订单更改为_id、标题、名称
var changed=JSON.parse(JSON.stringify(JSON,[“_id”,“title”,“name”],4));
pre.innerHTML=“原始:”+JSON.stringify(JSON,null,4)+“有序:”+JSON.stringify(已更改,null,4)代码>
hi的可能重复,如何在特定位置重新排列json属性order@stackdisplayJS不定义对象属性的顺序,但您可以构造一个变通方法,检查我的更新答案。