我有一个集合,其中包含具有以下结构的文档:
array (
'_id' => new MongoId("54369e2904f7055598463483"),
'user' => '123',
'model' =>
array (
'test' =>
array (
'0' => 'test1',
'1' => 'test2',
'2' => 'test3',
),
),
)
如果我在Rock Mongo中进行下一个查询,我得到了结果。
array(
'user' => array(
'$in' => array(
'0' => '123'
)
)
)
但是,如果我尝试获取具有例如key =>的文档对值'0'=> 'test1'& '1'=> 'test2'我没有得到下一个查询的任何数据:
array(
'model' => array(
'test' => array(
'$in' => array(
'0' => 'test1',
'1' => 'test2',
)
)
)
)
我犯错误的地方?
提前致谢
答案 0 :(得分:0)
PHP的数组/散列混合使您的示例有点难以阅读和推理。但是这是你的模型在Mongo的原生语法(一种区分列表和地图的语言)中的样子:
{
"_id": ObjectId(...),
"user": 123,
"model": {"test": ["test1", "test2", "test3"]}
}
所以你想查询model.test
(嵌套文档)。使用Mongo的本机语法,您将执行以下操作:
collection.find({"model.test": {"$in": ["test1", "test2"]})
有关详细信息,请参阅http://docs.mongodb.org/manual/reference/method/db.collection.find/。