mongodb。如何 select 不同的记录

mongodb. how to select distinct records

我只需要获取具有不同值的文档

SQL 应该是这样的:SELECT DISTINCT engine_type_id FROM cars 但我不知道如何在 mongo.

中获得相同的行为

提前致谢。

P.S。我尝试使用 mongo 的 distinct 方法,但它 returns 不同 engine_type_id 的数组而不是整个文档。所以不幸的是它对我不起作用。

我们可以使用带有 2 个参数的 distinct 方法。

以下是我获取所有 ID 的方法: ids = db.cars .distinct("_id", "engine_type_id")

接下来我可以用下一个查询命中数据库: db.cars.find({"_id": {$in: ids}})

所以,就这样!

那些使用 ruby 和 MongoMapper 的人,请看这里:

ids = MongoMapper.database.eval("db.cars.distinct('_id', 'engine_type_id'})")
Car.where(_id: { :$in => ids })

您使用 mongomapper 对其进行了标记,但同样的 synax 也适用于 mongoid。

这是一个适合我的答案:

ap WaterSupply.distinct(:thread_type)
[
    [0] "NST",
    [1] "5\" NST",
    [2] "",
    [3] "JSN"
]

您也可以用 scopes/where 子句链接它:

org.users.active.distinct(:role_ids)