首页 > 解决方案 > mongo $sort $aggregate 在每次执行时得到不同的结果

问题描述

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

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

集合示例:

{ 
    "_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 字段对结果进行排序,但问题仍然存在:/

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

标签: mongodbaggregate

解决方案


推荐阅读