匹配mongodb php的元素
我的问题是如何将以下来自mongodb的js代码翻译成php: t、 查找({group:3,'x.a':2},{'x.$':1}).toArray()[0].x.length, “单对象匹配(数组长度匹配)” 您可以在以下位置找到完整的js代码:匹配mongodb php的元素,php,mongodb,Php,Mongodb,我的问题是如何将以下来自mongodb的js代码翻译成php: t、 查找({group:3,'x.a':2},{'x.$':1}).toArray()[0].x.length, “单对象匹配(数组长度匹配)” 您可以在以下位置找到完整的js代码: 基本上,我关心的是如何将php转换为toArray()[0].x.length?我知道php有计数功能,但我不在乎。我还有其他的高级查询,它们都归结为这个问题 toArray()[0].x.length的直译为: $cursor = $collec
基本上,我关心的是如何将php转换为toArray()[0].x.length?我知道php有计数功能,但我不在乎。我还有其他的高级查询,它们都归结为这个问题 toArray()[0].x.length的直译为:
$cursor = $collection->find(['group' => 3, 'x.a' => 2], ['x.$' => 1]);
$documents = iterator_to_array($cursor, false);
count($documents[0]['x']);
或者,在上面的示例中使用它会更容易,因为我们只处理第一个结果,而忽略任何其他结果。重写:
$document = $collection->findOne(['group' => 3, 'x.a' => 2], ['x.$' => 1]);
count($document['x']);
我没有理解你所说的“我知道php有count,但我不在乎它。”除非你提到,否则计算返回文档中数组的长度必须使用basic。toArray()[0].x.length的直译是:
$cursor = $collection->find(['group' => 3, 'x.a' => 2], ['x.$' => 1]);
$documents = iterator_to_array($cursor, false);
count($documents[0]['x']);
或者,在上面的示例中使用它会更容易,因为我们只处理第一个结果,而忽略任何其他结果。重写:
$document = $collection->findOne(['group' => 3, 'x.a' => 2], ['x.$' => 1]);
count($document['x']);
我没有理解你所说的“我知道php有count,但我不关心这个”的意思。除非你提到,否则计算返回文档中数组的长度必须使用basic。我知道我可以这样做,但这是唯一的可能吗?我想可能有东西返回了我想要的精确数组,只是为了性能。字段选择仍然会返回顶级文档上下文中的所有内容。从理论上讲,您可以使用MongoDB来转换结果(例如,或服务器端JS),但这并没有那么有效。我知道我可以这样做,但这是唯一的可能吗?我想可能有东西返回了我想要的精确数组,只是为了性能。字段选择仍然会返回顶级文档上下文中的所有内容。从理论上讲,您可以使用MongoDB来转换结果(例如,或服务器端JS),但这远没有效率高。