Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP+;MongoDB-从集合内的数组中提取$elemMatch不起作用的项_Php_Mongodb_Mongodb Query - Fatal编程技术网

PHP+;MongoDB-从集合内的数组中提取$elemMatch不起作用的项

PHP+;MongoDB-从集合内的数组中提取$elemMatch不起作用的项,php,mongodb,mongodb-query,Php,Mongodb,Mongodb Query,我的目标如下: { users: { _id: "users", entries: [ { _id: 1, username: "taxicala", password: "password" }, { _id: 2,

我的目标如下:

{
    users: {
        _id: "users",
        entries: 
        [
            {
                _id: 1,
                username: "taxicala",
                password: "password"
            },
            {
                _id: 2,
                username: "guest",
                password: "guest"
            }
        ]
    }
}
我只想选择“entries”数组中的一个用户。我正在尝试以下方法:

$entry = $this->_users->find(
             array('entries' => 
                 array('$elemMatch' => 
                     array('username' => 'taxicala')
                 )
             )
         );
我得到的结果是一个空对象:

{ }
我在谷歌上或这里都找不到任何线索。我做错什么了吗?我错过什么了吗?还是PHP不支持“$elemMatch”


谢谢

$elemMatch是受支持的,但就您的文档而言,您的
条目
位于用户
对象
内。因此,至少在查询中,您必须放入
数组('users.entries'=>…)
。我也不明白为什么需要使用$elemMatch


db.coll.find({“users.entries.username”:“taxacala”})
输出用户名为“taxacala”的文档。

$elemMatch受支持,但就文档而言,
条目位于用户
对象的内部。因此,至少在查询中,您必须放入
数组('users.entries'=>…)
。我也不明白为什么需要使用$elemMatch


db.coll.find({“users.entries.username”:“taxacala”})
输出用户名为“taxacala”的文档。

谢谢!这对我来说是可行的,但是,我发现我的数据格式不正确,我在向users集合添加users对象。这是你刚接触某样东西时得到的:D。但是你给我的答案是正确的。谢谢!这对我来说是可行的,但是,我发现我的数据格式不正确,我在向users集合添加users对象。这就是当你对某件事不熟悉时你得到的:D。但是你给我的答案是正确的。