2014-12-02 67 views
0

与$蒙戈我有一个集合包含与结构如下文件:查询在运营商

array (
    '_id' => new MongoId("54369e2904f7055598463483"), 
    'user' => '123', 
    'model' => 
    array (
    'test' => 
    array (
     '0' => 'test1', 
     '1' => 'test2', 
     '2' => 'test3', 

    ), 
), 
) 

如果我做一个查询中岩蒙戈我得到的结果。

array(
'user' => array(
    '$in' => array(
    '0' => '123' 
    ) 
) 
) 

但是,如果我尝试获取具有例如键=>对价票券“0” =>“test1的” &“1” =>“test2的”我不下一得到任何数据查询:

array(
'model' => array(
    'test' => array(
    '$in' => array(
    '0' => 'test1', 
    '1' => 'test2', 
    ) 
) 
) 
) 

我在哪里犯错?

在此先感谢

回答

0

PHP的数组/哈希的mixup使你的例子有点难以阅读和推理。但是,这里是你的模型看起来像在蒙戈的本地语法(这使得列表和地图之间的区别语言):

{ 
    "_id": ObjectId(...), 
    "user": 123, 
    "model": {"test": ["test1", "test2", "test3"]} 
} 

所以你要对model.test(嵌套文件)查询。使用蒙戈的母语语法,你会做到以下几点:

collection.find({"model.test": {"$in": ["test1", "test2"]}) 

更多信息,请参见http://docs.mongodb.org/manual/reference/method/db.collection.find/