【发布时间】:2017-10-24 04:43:00
【问题描述】:
我会尽量清楚地解决这个问题。
假设我有两个集合,Col_A 和 Col_B。
Col_A 有一个属性,attribute C,它通过 ObjectID 引用我们的另一个集合 Col_B。
我想从 Col_A 中查询文档,并按照 Col_B 中的属性 E 进行排序。
如果上面的内容过于广泛,一个实际的例子是像 eBay 这样的网站上的用户和列表。对于此示例,假设 Col_A 是“Listings”,Col_B 是“Users”,属性C是“seller”,属性E是“rating”。
查询:获取所有符合某些条件的列表,按评分最高的卖家排序
这意味着“从 Listings 中获取所有符合某些给定条件的文档,并根据每个 Users 文档的 rating 属性对结果进行排序列表参考。
如何去做这件事?我了解如何通过猫鼬应用基本的排序逻辑,例如:
Listings.find({"attribute A" : "something"}).sort({"some_field": "uhh"}).exec(function(err, docs) { ... });
,但是我可以嵌套在引用文档的属性中并按这些属性排序吗?我是否需要以某种方式在排序参数或其他内容中应用查询?猫鼬有这样的能力吗?我查看了 Mongoose 的填充功能,但我无法使任何工作,显然有一个错误阻止人们实际使用填充的文档进行排序。
如果这个问题已经得到解答,我深表歉意。我一直在挖掘文档、SO 和其他各种站点,但我什么也做不了。提前致谢!
【问题讨论】:
标签: node.js mongodb sorting mongoose