我只需要使用不同的值来获取文档
SQL应该是这样的:SELECT DISTINCT engine_type_id FROM cars
但我不知道如何在mongo中获得相同的行为。
提前感谢。
P.S。我尝试使用mongo的distinct
方法,但它返回不同的engine_type_id数组,而不是整个文档。不幸的是,这对我不起作用。
答案 0 :(得分:0)
使用:
SELECT DISTINCT engine_type_id FROM cars
SQL数据库上的只返回engine_type_id字段,如果有两辆汽车具有相同的engine_type_id,另一列名为color,但它们具有不同的值。查询结果中颜色列的值是什么?
答案 1 :(得分:0)
我们可以将distinct
方法与 2 参数一起使用。
以下是我获取所有ID的方法:
ids = db.cars .distinct("_id", "engine_type_id")
接下来我可以使用下一个查询命中db:
db.cars.find({"_id": {$in: ids}})
所以,就是这样!
对于那些使用ruby和MongoMapper的人,请看一下:
ids = MongoMapper.database.eval("db.cars.distinct('_id', 'engine_type_id'})")
Car.where(_id: { :$in => ids })
答案 2 :(得分:0)
您用mongomapper标记了此名称,但同一个synax也适用于mongoid。
以下是对我有用的答案:
ap WaterSupply.distinct(:thread_type)
[
[0] "NST",
[1] "5\" NST",
[2] "",
[3] "JSN"
]
您还可以使用scope / where子句将其链接:
org.users.active.distinct(:role_ids)