php - 如何使用 PHP“mongodb”扩展从 MongoDB 获取原始 BSON
问题描述
我正在尝试使用 PHP 从 mongodb 获取二进制 BSON 字符串,但我不知道如何将文档作为 BSON 获取。它总是首先将其解析为 PHP 对象。
我试图typeMap
在光标上设置 a ,但这只是将已经解析的 PHP 对象传递给bsonSerialize($object)
类中的函数。
代码如下所示:
<?php
$db = new \MongoDB\Driver\Manager('mongodb://localhost/test');
$query = new \MongoDB\Driver\Query([]);
$cursor = $db->executeQuery("test.contacts", $query);
foreach($cursor as $document) {
// $document is already parsed to a PHP stdObject
}
解决方案
在最近的 MongoDB 版本(自 3.6 起)中,文档作为响应的一部分返回,整个响应被序列化为 BSON。这意味着,驱动程序在收到响应时,必须对整个响应进行 BSON 反序列化,然后将部分响应作为找到的文档提供给应用程序。
驱动程序没有一刻将文档单独序列化为 BSON。
因此,如果您需要将单个文档序列化为 BSON,则需要自己进行。
推荐阅读
- python - TemplateResponseMixin 需要“template_name”的定义或“get_template_names()”的实现
- python - 画线循环
- java - 我无法理解代码片段的输出。有人能给我解释一下吗?
- php - 数据库中有 2 条记录,但只列出了 1 条记录
- c# - 任何人都可以举一个用于动态增长链式哈希表的泛型示例吗?
- html - 使用 css 旋转发光图像
- javascript - 如何将数组索引映射到子集索引?
- asp.net - .NET Core 2 CookieAuthentication 忽略过期时间跨度
- python - 从另一个引用dict元素?
- android - Firebase 中与远程配置相关的缓存是什么?