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。但是你给我的答案是正确的。