将不同的收集结果合并到Mongo中

时间:2017-01-13 06:03:53

标签: mongodb

以下是我的查询我想要shp_tx_survey_with_index和的结果 对于此集合的每个循环集合shp_counties_with_index name1和name2。如果单独运行此查询然后获取结果,但此查询不提供任何内容。我想要像Range_Township,Survey,Section,abstract,centroid,name_1,name_2。

这样的结果
db.shp_tx_survey_with_index.aggregate(
        [
            { $match: { "centroid": { "$ne": null } } },
            { $limit: 5 },
            {
                $project: {
                    Range_Township: "$l1surnam",
                    Survey: "$l4surnam",
                    Section: "$l1surnam",
                    abstract: "$abstract_",
                    centroid: "$centroid"
                }
            }
        ]
    ).forEach((obj) => {
        var item = db.shp_counties_with_index.findOne({
            geom_geojson: {
                $nearSphere: {
                    $geometry: obj.centroid
                }
            }
        }, { 'name_1': 1, 'name_2': 1 });

    });

shp_counties_with_index样本集

{
    "_id" : ObjectId("5846bf55834d5b761f00000a"),
    "engtype_2" : "County",
            "geom_geojson" : {
        "type" : "MultiPolygon",
        "coordinates" : [
            [
                [
                    [
                        -73.6516685561232,
                        34.2445059658098
                    ],
                    [
                        -73.6516685623318,
                        34.2445059757618
                    ],
                    [
                        -73.6516685538257,
                        34.244505973301
                    ],
                    [
                        -73.6516685561232,
                        34.2445059658098
                    ]
                ]
            ] ]   
    },
    "name_0" : "United States",
    "name_1" : "Michigan",
    "name_2" : "Chippewa",
    "shape_area" : "0.481851809544",
    "shape_leng" : "9.37720288177",
    "type_2" : "County",
    "validfr_2" : "Unknown",
    "validto_2" : "Unknown",
    "centroid" : {
        "coordinates" : [
            -73.65166855807875,
            34.244505970785795
        ],
        "type" : "Point"
    }
}

shp_tx_survey_with_index样本集

{
    "_id" : ObjectId("5846bf76834d5b761f013fa7"),
    "abstract_" : "321.000000000",
    "abstract_i" : "322.000000000",
    "anum" : "443962",
    "area" : "0.0000666764235294",
    "geom" : "01060000000100000001030000000100000008000000EC90DE47A07659C0F062332AEA813E403471FBB0A17759C06082096CE6813E4034A2C2ABA17759C0700AAF2731823E40B49BADAAA17759C09092F09440823E401C588E90A17759C000B4279A6A823E400019834C677559C02026721261823E403073564B677559C080C77880E6813E40EC90DE47A07659C0F062332AEA813E40",
    "geom_geojson" : {
        "type" : "MultiPolygon",
        "coordinates" : [
            [
                [
                    [
                        -73.6517272344497,
                        34.2444627902475
                    ],
                    [
                        -73.6517271719931,
                        34.2444627964974
                    ],
                    [
                        -73.6517271718375,
                        34.2444627914072
                    ],
                    [
                        -73.6517272344497,
                        34.2444627902475
                    ]
                ]
            ]
        ]
    },
    "geom_text" : "MULTIPOLYGON(((-73.6517272344497 34.2444627902475,-73.6517271719931 34.2444627964974,-73.6517271718375 34.2444627914072,-73.6517272344497 34.2444627902475)))",
    "gid" : "271508",
    "l1surnam" : "TEMPLETON, J S",
    "l2block" : null,
    "l3surnum" : "4",
    "l4surnam" : null,
    "perimeter" : "0.0735082380545",
    "probflag" : "0",
    "shape_area" : "0.0000666764230571",
    "shape_leng" : "0.0735082374282",
    "centroid" : {
        "coordinates" : [
            -73.6517272031436,
            34.24446279337245
        ],
        "type" : "Point"
    }
}

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果要在汇总管道中组合来自2个集合的信息,可以使用$lookup运算符。 MongoDB 3.2及更高版本提供此运算符。