mongodb和meteor,使用$or时如何按首选字段匹配对文档进行排序

mongodb和meteor,使用$or时如何按首选字段匹配对文档进行排序,mongodb,sorting,meteor,minimongo,Mongodb,Sorting,Meteor,Minimongo,在meteor中,假设我有一个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

在meteor中,假设我有一个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的文档

如何使返回的游标按以下顺序排序:

数量大于250且描述匹配的文档 仅包含鞋的描述的文档 仅数量大于250的文档 在它周围搜索似乎是一种聚合,可能是一种选择,除了meteor的minimongo在这一点上似乎不支持聚合


如果无法使用minimongo排序说明符/查询等来完成此操作,那么如果对游标执行获取返回的数组/对象执行此操作,您将如何按照上述方式对结果进行排序

是否使用自定义发布和订阅?如果是这样,您可以为数量>250的项目创建一个出版物,并为具有描述的项目创建一个单独的出版物。您可以对一个集合使用多个订阅,Meteor将合并结果。不幸的是,我不是。我正在使用一个搜索包来构造查询和发布。看起来,使用$or,minimongo无论如何都不可能对客户端进行智能排序。多个订阅和手动排序可能是唯一的选项。
result: { $or: [ { $gt: [ "$qty", 250 ] }, { $in: [ "$description", "shoe" ] } ] }