美好的一天。我有以下文件。
{
id: 1,
status: "sleeping"
}
{
id: 2,
status: "eating"
},
{
id: 3,
status: "drinking"
},
{
id: 4,
status: "drinking"
},
{
id: 5,
status: "sleeping"
},
{
id: 6,
status: "studying"
},
...
如何按以下顺序按状态对其进行排序? 睡觉,饮用,饮食,学习
我正在使用Angular-Meteor。我在服务器中尝试发布一个限制的集合,因为我处理的是非常大的数据集。
我正在研究聚合,我认为这是适用于此案例的正确解决方案,但Meteor并不支持它。
答案 0 :(得分:1)
好吧,我最后附上了一个数字,按以下顺序对文件进行排序:睡眠,饮用,饮食,<强>研究强>
{
id: 1,
status: "sleeping",
statusOrder: 0
}
{
id: 2,
status: "eating",
statusOrder: 2
},
{
id: 3,
status: "drinking",
statusOrder: 1
},
{
id: 4,
status: "drinking",
statusOrder: 1
},
{
id: 5,
status: "sleeping",
statusOrder: 0
},
{
id: 6,
status: "studying",
statusOrder: 3
},
...
坦率地说,这更容易。
但如果您对使用MongoDB群组感兴趣,我发现了一些可能有用的东西。链接here。
答案 1 :(得分:0)
MongoDb只支持排序A - &gt; Z,Z - &gt; A,0 - &gt; 9,9-&gt; 0
在sort参数中指定要排序的字段或值1或-1,以分别指定升序或降序排序。
实施例: db.orders.find()。sort({&#34; status&#34;:-1})
答案 2 :(得分:0)
mongodb聚合框架在服务器端通过monbro:mongodb-mapreduce-aggregation包提供(例如)。您可以在出版物中使用它。
另一种方法是在某种程度上对数据进行非规范化,并在每个文档中包含排序键。这涉及典型的存储与速度权衡。