Mongodb mongo$sort$aggregate在每次执行时都会得到不同的结果

Mongodb mongo$sort$aggregate在每次执行时都会得到不同的结果,mongodb,aggregate,Mongodb,Aggregate,我正在执行聚合查询,以获取每个文档的所有唯一名称。名字可以重复,这没关系 问题是,每次执行查询时,我都会收到不同的结果 收集示例: { "_id" : ObjectId("5dds82d99b912454cba84359"), "name": "name1", "creation_date: 2019-03-07T00:00:00.000Z } 查询: db.getCollect

我正在执行聚合查询,以获取每个文档的所有唯一名称。名字可以重复,这没关系

问题是,每次执行查询时,我都会收到不同的结果

收集示例:

{ 
    "_id" : ObjectId("5dds82d99b912454cba84359"),
    "name": "name1",
    "creation_date: 2019-03-07T00:00:00.000Z
}
查询:

db.getCollection("collection_name").aggregate([
        { 
            "$match": {
            "creation_date": {
                $gte: ISODate("2019-03-07T00:00:00.000Z"),
                $lte: ISODate("2019-09-03T00:00:00.000Z"),
                }
            }
        },
        {
            '$group': {
                '_id': null, 'array': {'$addToSet': '$$ROOT.name'}
            },
        },
        {'$sort': {'creation_date': 1, '_id':1}}
]);
我有两条记录的创建日期完全相同,因此,我也尝试按_id字段对结果排序,但问题仍然存在:/


你知道为什么每次执行都会得到不同的结果吗?

请你先对$sort进行排序,然后再对$group进行排序。分组时会丢失创建日期和ID。分组时,没有创建日期。如果需要按创建日期排序,还需要获取它