在流星中,假设我有一个包含以下文件的 minimongo 集合:
{ "_id" : 1, "item" : "abc1", description: "ball", qty: 300 }
{ "_id" : 2, "item" : "abc2", description: "shoe", qty: 100 }
{ "_id" : 3, "item" : "xyz1", description: "tops", qty: 250 }
{ "_id" : 4, "item" : "VWZ1", description: "glue", qty: 300 }
{ "_id" : 5, "item" : "VWZ2", description: "glue", qty: 180 }
{ "_id" : 6, "item" : "XXX1", description: "shoe", qty: 500 }
并且我想使用 $or 运算符返回具有qty > 250
或描述为的文档shoe
。
result: { $or: [ { $gt: [ "$qty", 250 ] }, { $in: [ "$description", "shoe" ] } ] }
如何使返回的光标按以下顺序排序:
- 具有
qty > 250
和描述匹配的文档shoe
- 只有描述的文件
shoe
- 文件刚刚
qty > 250
搜索它似乎是聚合ref 1,ref 2可能是一种选择,除了流星的 minimongo 在这一点上似乎不支持聚合。
如果这不能通过 minimongo 排序说明符/查询等来完成,那么如何按上述方式对结果进行排序(假设它是在从游标上获取返回的数组/对象上完成的)