【发布时间】:2014-04-22 17:33:24
【问题描述】:
我在 mongo 中有一个集合,其中的数据如下所示:
{
"myinput": "myinput",
"myoutput": {
"Result": {
"CrossData": {
"CrossDto": [
{
"col1": "11",
"col2": "12",
},
{
"col1": "21",
"col2": "22",
},
{
"col1": "31",
"col2": "32",
}
],
"ReqPartNumber": "myinput"
}
},
"Status": {
"Code": "0",
"Message": "Successful Operation",
"Success": "true"
}
}
}
我正在尝试在 SQL 中创建一个映射表,因此数据将如下所示,其中只有 Status 成功时 CrossDto 才会存在:
myinput 11 12
myinput 21 22
myinput 31 32
...
我正在尝试提出一个 mongodb 查询,以便在查询端尽可能简单地进行此操作,这样我就不会在 Python 中使用疯狂的嵌套结构将其转换为表格式。
到目前为止我做了什么:
db.collection.find({'myoutput.Status.Success':'true'}, {_id:0, myoutput:1}).limit(1)
它会选择状态为成功的记录,同时只显示“myoutput”..
但我想要的其实是深几层,是这样的:
{
"CrossDto": [
{
"col1": "1",
"col2": "1",
},
{
"col1": "2",
"col2": "2",
},
{
"col1": "3",
"col2": "3",
}
],
"ReqPartNumber": "myinput"
}
谁能帮帮我?如何配置 mongodb 的 projection 部分,这样我就可以只获得我想要的嵌套列......我期望类似这样的东西:
{_id=0, myoutput.Result.CrossData=1}
谢谢:)
【问题讨论】: