我在从MongoDB数据库检索ObjectID时遇到了一个问题,但在通过json_encode运行时,“_id”值总是消失。数组中的所有其他数据都存在。我的代码如下:
$data = array('_id' => new MongoDB\BSON\ObjectID(), 'title' => 'abc123');
//ID Is there!
print_r($data);
//ID IS EMPTTYy!!!
print_r(json_encode($data));
exit();
结果如下:
Array ( [_id] => MongoDB\BSON\ObjectID Object ( [oid] => 56d9d2687e34d70d3a304c46 ) [title] => abc123 )
{"_id":{},"title":"abc123"}
至少,_id应该包含一个对象或数字。我的问题是什么在剥离\MongoDB\BSON\ObjectID,以及如何让它保留下来?
@malarzm答案的示例代码:
$output = [];
foreach( $data as $key => $val){
$val->_id = strval($val->_id);
$output[$key] = $val;
}
echo json_encode( $output );
我的问题是什么是剥离\MongoDB\BSON\ObjectID
json_encode
将只对遇到的对象的public
属性进行编码。
我怎样才能让它留下来?
可以在编码之前将其转换为字符串。
新Gson()。toJson(新ObjectId()) 当我执行上述操作时,我得到的输出是 “_id”:{“_time”:1374347520,“_machine”:-1025067326,“_inc”:585905201,“_new”:false} 但事实上我希望它像 _id:{$id:51eae100c2e6b6c222ec3431} 这是常见的mongodb ID格式。Java中更可取的方法
主要内容:创建新的 ObjectId,创建文档的时间戳,将 ObjectId 转换为 String本节我们来介绍一下 MongoDB 中的 ObjectId 的组成,ObjectId 是一个 12 字节的 BSON 类型,具有以下结构: 前 4 个字节表示时间戳; 接下来的 3 个字节表示机器标识符; 紧接着的 2 个字节由进程 id(PID)组成; 最后 3 个字节是一个随机计数器的值。 MongoDB 使用 ObjectId 作为每个文档 _id 字段的默认值,而且该值可以在创建文档时自动
我试图使分页工作与MongoDB没有跳过(); 在mongo shell中,我通过查询得到了以下结果,但在Javascript中是空的[]; 我认为我做的ObjectID是错误的,我使用“mongodb ObjectID”和“mongojs”libs与Node一起使用。js。 Mongo外壳: 输出: JavaScript 我如何得到相同的结果,与我的查询在JS? 使用文档中的$oid进行编辑:
问题内容: 我正在尝试将对象存储在MongoDB数据库中(使用MongoDB 3.0.2),并且在尝试使用错误消息对对象进行编码时得到提示 我已经编写并包含了对象的编解码器。详细信息如下。 我尝试存储的对象,具有以下成员变量: 我编写了以下编解码器来对数据库中的对象进行编码: 由于MongoDB当前不支持,因此我编写了以下编解码器来对数据库中的对象进行编码: 我在实例化MongoClient时在M
问题内容: 我正在使用https://github.com/mongodb/mongo-go- driver ,目前正在尝试实现这种结构的部分更新 例如,如果我有 然后,我希望存储文档中唯一的“标题”字段将被更改。 我需要写类似 问题是我不想用或手动编码每个非空字段。我尝试使用但出现错误 无法为* models.NoteUpdate类型创建元素,请尝试使用bsoncodec.ConstructEl
问题内容: 我需要使用pymongo用python搜索ObjectId,但是我总是会收到此错误。有什么想法如何搜索? 问题答案: 我使用pymongo 2.4.1。