9
有没有办法将$ addToSet的结果作为排序数组?排序聚合addToSet结果
我试图展开管道和$展开数组,排序并再次分组, 但仍然没有排序结果。
数组非常大,我尽量避免在应用程序中对它们进行排序。
Document Example : { "_id" : ObjectId("52a84825cc8391ab188b4567"), "id" : 129624 "message" : "Sample", "date" : "12-09-2013,17:34:34", "dt" : ISODate("2013-12-09T17:34:34.000Z"), }
查询:
db.uEvents.aggregate( [ {$match : {dt : {$gte : new Date(2014,01,01) , $lt : new Date(2015,01,17)}}} ,{$sort : {dt : 1}} , {$group : { _id : { id : "$id" , year : {'$year' : "$dt"} , month : {'$month' : "$dt"} , day : {'$dayOfMonth' : "$dt"} } ,dt : {$addToSet : "$dt"} }} ] );
这是正确的!但奇怪的是,当在最后阶段我使用$ addToSet而不是$推它没有命令。 –
@alon_r这并不奇怪。 **特别**是因为我从MongoDB的CTO引用的内容。 “Set's被认为是无序的”。仅供参考,“Elliot”也提出**集**可能最终被认为是**自己的**数据类型,与数组分开。因此需要重新区分这个区别。当你得到一些代表时进行投票。这是免费的许多知识。 –