定义
参数
$filter: array|object- 指定要查询的文档的筛选条件。
$options: array指定所需选项的数组。
名称类型说明allowDiskUse
布尔
允许写入临时文件。设置为
true时,查询可以将数据写入到dbPath目录的_tmp子目录中。allowPartialResults
布尔
对于针对分片集合的查询,如果某些分片不可用,则从
mongos返回部分结果,而不是引发错误。编解码器
MongoDB\Codec\DocumentCodec
Encode Data with Type Codecs 用于对文档进行编码或解码。此选项与
typeMap选项互斥。默认为存储桶的编解码器。 默认
codec选项的继承优先于typeMap选项的继承。1.17 版本中的新增功能。
排序规则
数组|对象
comment
混合
提示
字符串|数组|对象
要使用的索引。将索引名称指定为字符串或将索引键模式指定为文档。如果指定,查询系统将只考虑使用提示索引的计划。
版本 1.2 中的新增内容。
let
数组|对象
参数名称和值的映射。值必须是常量或不引用文档字段的封闭表达式。然后可以在聚合表达式上下文中将参数作为变量进行访问(例如
$$var)。5.0 之前的服务器版本不支持此功能,如果使用,将导致执行时出现异常。
1.13 版本中的新增功能。
Max
数组|对象
特定索引的独占上限。
版本 1.2 中的新增内容。
maxScan
整型
执行查询时要扫描的最大文档数或索引键数。
自版本 1.4 起已弃用。
版本 1.2 中的新增内容。
maxTimeMS
整型
处理游标操作的累计时间限制(以毫秒为单位)。MongoDB 最早会在中断点之后中止操作。
min
数组|对象
特定索引的包含下限。
版本 1.2 中的新增内容。
modifiers
数组|对象
修改查询的输出或行为的元操作符。 这些操作符已弃用,建议使用命名选项。
oplogReplay
布尔
针对副本集的内部用法。要使用
oplogReplay,您必须在筛选器中包含以下条件:{ ts: { $gte: <timestamp> } } MongoDB\ BSON \Timestamp 类参考描述了如何使用PHP表示 MongoDB 的BSON时间戳类型。
自版本 1.7 起已弃用。
投影
数组|对象
事务外的
readPreference
读取要用于操作的偏好。 默认为存储桶的读取偏好(read preference)。
returnKey
布尔
如果为 true,则只返回结果文档中的索引键。
版本 1.2 中的新增内容。
会话
与操作相关联的客户端会话。
1.3 版本中的新增功能。
showRecordId
布尔
确定定是否返回每个文档的记录标识符。如果为 true,则在返回的文档中添加字段
$recordId。版本 1.2 中的新增内容。
跳过
整型
要跳过的文档数量。默认值为
0。sort
数组|对象
对结果排序的排序规范。
typeMap
阵列
应用游标的类型映射,决定如何将BSON文档转换为PHP值。默认为存储桶的类型映射。
这将用于返回的结果文档。
Return Values
与查询匹配的第一个文档的数组或对象,如果没有文档与查询匹配,则为null 。 返回类型将取决于typeMap选项。
错误/异常
MongoDB\Exception\UnsupportedException,如果所选服务器使用了选项但不支持选项(例如collation、readConcern、writeConcern)。
MongoDB\Exception\InvalidArgumentException 用于与参数或选项解析相关的错误。
MongoDB\ 驱动程序\Exception\RuntimeException 用于扩展级别的其他错误(例如连接错误)。
行为
在评估查询条件时, MongoDB会根据自己的BSON 类型比较规则来比较类型和值,这与 PHP 的比较和类型规则不同。匹配特殊BSON类型时,查询条件应使用扩展中相应的BSON类(例如使用MongoDB\BSON\ObjectId来匹配ObjectId)。
示例
$bucket = (new MongoDB\Client)->test->selectGridFSBucket(); $stream = fopen('php://temp', 'w+b'); fwrite($stream, "foobar"); rewind($stream); $bucket->uploadFromStream('b', $stream); $fileDocument = $bucket->findOne( ['length' => ['$lte' => 6]], [ 'projection' => [ 'filename' => 1, 'length' => 1, '_id' => 0, ], 'sort' => ['length' => -1], ] ); var_dump($fileDocument);
而输出将类似如下所示:
object(MongoDB\Model\BSONDocument)#3004 (1) { ["storage":"ArrayObject":private]=> array(2) { ["filename"]=> string(1) "b" ["length"]=> int(6) } }