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)
我只需要获取具有不同值的文档
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)