基于ObjectID的Mongodb聚合中的查询问题

基于ObjectID的Mongodb聚合中的查询问题,mongodb,mongoose,mongodb-query,aggregation-framework,Mongodb,Mongoose,Mongodb Query,Aggregation Framework,嗨,我面临着mongodb聚合的问题,我是mongodb新手 如何在mongoDB中根据对象Id获取此数据的结果 >我的输入是这样的: { "_id" : { "latitude" : "17.4451028", "longitude" : "78.3866821", "trip_data_id" : ObjectId("5dd637131b5313355ce8bfa1"), "user_name" : "Eswar"

嗨,我面临着mongodb聚合的问题,我是mongodb新手 如何在mongoDB中根据对象Id获取此数据的结果

>我的输入是这样的:

{
    "_id" : {
        "latitude" : "17.4451028",
        "longitude" : "78.3866821",
        "trip_data_id" : ObjectId("5dd637131b5313355ce8bfa1"),
        "user_name" : "Eswar"
    }
},

{
    "_id" : {
        "latitude" : "17.4450606",
        "longitude" : "78.3865973",
        "trip_data_id" : ObjectId("5dd637131b5313355ce8bfa1"),
        "user_name" : "Eswar"
    }
}

{
    "_id" : {
        "latitude" : "17.4451156",
        "longitude" : "78.3867887",
        "trip_data_id" : ObjectId("5dd637131b5313355ce8bfa1"),
        "user_name" : "Eswar"
    }
},

{
    "_id" : {
        "latitude" : "17.4451125",
        "longitude" : "78.3866802",
        "trip_data_id" : ObjectId("5dd637131b5313355ce8bfa1"),
        "user_name" : "Eswar"
    }
},

{
    "_id" : {
        "latitude" : "17.4451187",
        "longitude" : "78.3867869",
        "trip_data_id" : ObjectId("5dd637131b5313355ce8bfa2"),
        "user_name" : "Rajesh"
    }
},

{
    "_id" : {
        "latitude" : "17.4450753",
        "longitude" : "78.3866457",
        "trip_data_id" : ObjectId("5dd637131b5313355ce8bfa2"),
        "user_name" : "Rajesh"
    }
},

{
    "_id" : {
        "latitude" : "17.4451005",
        "longitude" : "78.3866823",
        "trip_data_id" : ObjectId("5dd637131b5313355ce8bfa3"),
        "user_name" : "Mahesh"
    }
},

{
    "_id" : {
        "latitude" : "17.4451287",
        "longitude" : "78.386776",
        "trip_data_id" : ObjectId("5dd637131b5313355ce8bfa3"),
        "user_name" : "Mahesh"
    }
},

{
    "_id" : {
        "latitude" : "17.4451171",
        "longitude" : "78.3867479",
        "trip_data_id" : ObjectId("5dd637131b5313355ce8bfa4"),
        "user_name" : "Venky"
    }
},

{
    "_id" : {
        "latitude" : "17.4450556",
        "longitude" : "78.3866078",
        "trip_data_id" : ObjectId("5dd637131b5313355ce8bfa4"),
        "user_name" : "Venky"
    }
}
但我想要基于匹配对象ID的响应,如下所示:

你能帮助我,如何为这个基于输入的ob建立一个查询吗 mongodb中匹配的对象Id,我希望上面显示的响应 结果

试试这个:

db.collection.aggregate([
    {
        $match: { 
          // match only relevant documents.
        }
    },
    {
        $group: {
            _id: "$user_name",
            coordinates: {$push: {longitude: "$longitude", latitude: "$latitude"}}
        }
    },
    {
        $replaceRoot: {
            newRoot: {$arrayToObject: [[{k: "$_id", v: "$coordinates"}]]}
        }
    }
])
试试这个:

db.collection.aggregate([
    {
        $match: { 
          // match only relevant documents.
        }
    },
    {
        $group: {
            _id: "$user_name",
            coordinates: {$push: {longitude: "$longitude", latitude: "$latitude"}}
        }
    },
    {
        $replaceRoot: {
            newRoot: {$arrayToObject: [[{k: "$_id", v: "$coordinates"}]]}
        }
    }
])

到目前为止你试过什么?到目前为止你试过什么?