Mongo:使用 $in 数组参数对结果进行排序 [重复]

Posted

技术标签:

【中文标题】Mongo:使用 $in 数组参数对结果进行排序 [重复]【英文标题】:Mongo: sort results with $in array parameter [duplicate] 【发布时间】:2014-11-10 11:08:22 【问题描述】:

我有两个集合 usersitemsuser.profile.savedItems 是一个保存的项目数组,如下所示:"itemId" : "yHud5CWpdPaEc6bdc", "添加" : ISODate("2014-09-12T22:28:11.738Z")

我要做的是从用户配置文件中检索项目(该部分有效)并根据添加日期对它们进行排序。

现在,这是我拥有的代码:

return items: Items.find(_id: $in: _.pluck(Meteor.user().profile.savedItems, 'item'));

我不知道是否可以使用常规的 mongo 语法..

【问题讨论】:

【参考方案1】:

您有两个选项:

    存储已排序的项目。 阅读后在客户端对项目进行排序。

读取未排序的项目在没有客户端排序的情况下不可能

【讨论】:

感谢您的回答。 1. 现在,我正在使用 addToSet,我搜索并找到了 $position 运算符,但它似乎不适用于 addToSet。虽然它们已经自然排序,但我只需要它反向。 2. 物品本身没有“添加”参数,我该怎么做? 查看this technique 以按插入顺序存储数组。 第三种选择:将这些项目放在一个单独的集合中,并使用 Mongo 对其进行排序。 所以我尝试按顺序插入,但似乎流星的 minimongo 落后于 mongodb 并且如果没有 $each,$sort 将无法工作。但我想到了别的东西。我可以创建一个新的“项目”克隆集合,并通过映射相应的 ID 为每个项目添加“添加”的额外属性吗?

以上是关于Mongo:使用 $in 数组参数对结果进行排序 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

你如何告诉 Mongo 在限制结果之前对集合进行排序?

你如何告诉 Mongo 在限制结果之前对集合进行排序?

mongo对分组数据进行排序

从最新到最旧的python对Mongo列表进行排序[重复]

sort() 数组的元素进行排序的方法

CoreData:使用 IN 基于谓词/数组进行排序