我有一个包含如下文档的集合:
{
_id: ObjectId("521d11014903728f8d000006"),
association_chain: [
{
name: "Foobar",
id: ObjectId("521d11014903728f8d000005")
}
],
// etc...
}
我可以使用此查询按name
属性进行搜索:
@results = Model.where 'association_chain.name' => 'Foobar'
这会按预期返回结果。但是,当我尝试使用id
属性进行搜索时:
@results = Model.where 'association_chain.id' => '521d11014903728f8d000005'
没有结果。据我所知,Mongoid生成的查询看起来是正确的:
MOPED: 127.0.0.1:27017 QUERY database=x collection=x selector={"$query"=>{"association_chain.id"=>"521d11014903728f8d000005"}, "$orderby"=>{"created_at"=>-1}} flags=[] limit=25 skip=0 batch_size=nil fields=nil (244.7259ms)
我做错了什么?
答案 0 :(得分:2)
您正在搜索字符串。尝试搜索ObjectId,例如
@results = Model.where 'association_chain.id' => BSON::ObjectId('521d11014903728f8d000005')