所以我有一个看起来像这个
的集合Groups
[
{
\"_id\": \"51bdff3968c7c4dd30000003\",
\"members\": [
{
\"id\": \"51bdedef68c7c4bc7c000001\",
\"role\": \"admin\"
},
{
\"id\": \"51be0d4568c7c473ef000007\",
\"role\": \"user\"
}
],
\"name\": \"tetsing2\"
},
{
\"_id\": \"51bdf97868c7c46604000002\",
\"members\": [
{
\"id\": \"51be12ae68c7c4dcce000001\",
\"role\": \"user\"
},
{
\"id\": \"51be12db68c7c45e08000002\",
\"role\": \"user\"
}
],
\"name\": \"ds\"
}
]"
我只是得到了成员数组中id等于51be12db68c7c45e08000002
我可以使用此命令在控制台mongo客户端中执行此操作
db.groups.find({ "members.id": ObjectId("51be12db68c7c45e08000002") })
它只返回一个名为'ds'
然而在使用Mongoid的rails中,当我尝试类似这样的命令时:
@groups = Group.where(' { "members.id": "'+current_user.id+'"}')
我找回了两个对象。
我查看了文档,但是有没有人知道如何通过Mongoid实现这一点,或者我可以通过Monogoid或轻便摩托车或其他东西运行控制台命令?
谢谢
答案 0 :(得分:1)
Group.where( :"members.id" => current_user.id )