akkroo/phpmongoquery

PHP中的Mongo查询

v1.0.2 2020-07-15 11:13 UTC

README

PHP中的Mongo查询

PHPMongoQuery 实现了MongoDB查询在PHP中的操作,允许开发者在Mongo查询对象上查询一个'document'(一个包含数据的数组),返回一个布尔值以表示通过或失败。此外,还可以查询一组文档以过滤它们,就像在MongoDB中使用的查询一样。

此代码在Akkroo中使用,允许在表单字段定义中构建高级表单逻辑查询。

用法

<?php

use Akkroo\PHPMongoQuery;

$query = array('a' => 'foo', 'b' => array('$ne' => 'bar'));
$document = array(
			'id' => 1,
			'a' => 'foo',
			'b' => 'barr'
		);
var_dump(PHPMongoQuery::executeQuery($query, $document));

这将输出

bool(true)

方法

find($query, $documents, $options)

对一组文档执行查询以过滤出仅通过查询的文档

executeQuery($query, $documents, $options)

对单个文档执行查询,返回一个布尔值以表示通过或失败

appendFieldSpecifier($query, $append)

将字段指定符附加到任何字段查询。例如,您的查询可能写成如下所示

$query = array('a' => 'foo');

然而,实际的文档结构是

$document = array('a' => array('value' => 'foo'), 'b' => array('value' => 'bar'));

因此,您需要将'value'指定符附加到查询字段指定符以使查询生效。例如

$newQuery = PHPMongoQuery::appendFieldSpecifier($query, 'value');
// $newQuery is array('a.value' => 'foo');

getDependentFields($query)

解析查询以查找它所依赖的所有字段。这对于在那些值更改时监听非常有用,这样查询只会在结果可能发生变化时重复。例如

$query = array('a' => 'foo');
$dependentFields = PHPMongoQuery::getDependentFields($query);
// $dependentFields is array('a');