尝试使用来自其他集合(用户)的嵌入字段查询嵌套文档(消息集合)
这是我要查询的文档的示例:
array (
'_id' => new MongoId("52454de22660b239178b4567"),
'from_uid' => array (
'uid' => '5231817277758e660c7202d7',
'uname' => 'franc',),
'to_uid' => '5231817277758e660c7202d7',
'object' => 'improving',
'content' => 'mongo mega newbie bro',
'datetime' => '2013-09-27 11:20:34',
)
我会(如果可能的话,只需 1 个查询)获取并显示闲置字段:
- uname(“from_uid”子数组的值)
- 目的
- 内容
- 约会时间
我尝试了很多方法都没有成功,并且开始发疯。我最后一次尝试是:
$m = new MongoClient();
$db = $m->mydb;
try{
$array_qry = iterator_to_array($db->message->find(array("to_uid" => $this->uid_logged), array( "_id" => 0, "from_uid" => array('from_uid.uid' => 0, 'from_uid.uname' => 1), "to_uid" => 0, "object" => 1, "content" => 1, "datetime" => 1)));
}catch(MongoCursorException $e) {
echo "error message: ".$e->getMessage()."<br/>";
echo "error code: ".$e->getCode()."<br/>";
}
foreach ($array_qry as $k => $v) {
print_r($v);
}
查询的第一个数组定义仅选择 to_uid 字段等于登录用户的 user_id 的消息(听起来很明显对吗?)。然后是用于选择字段的数组和子数组(可能是错误所在)。
我得到这个输出,警告肯定只是不返回任何结果的错误查询的结果:
error message: localhost:27017: Unsupported projection option: from_uid.uid
error code: 13097
Warning: Invalid argument supplied for foreach() in /var/www/nosql_portal/inc/classi/msg.class.php on line 128
任何帮助表示赞赏