我对如何通过有线协议执行此操作很感兴趣,因为我正在编写自己的驱动程序。似乎 PHP 会自动修改数组以包含 _id 字段。它具体是如何做到的?什么命令/查询被发送到 mongod 服务器?
任何帮助表示赞赏。
我不知道 php 驱动程序,但是通过 Java 驱动程序的代码,如果没有提供 id,则执行此代码(在第 169 行):
public ObjectId() {
_time = (int) (System.currentTimeMillis() / 1000);
_machine = _genmachine;
_inc = _nextInc.getAndIncrement();
_new = true;
}
返回一个新的默认值ObjectId
。
如果您的驱动程序需要提供最后一次插入的 _id,最简单的方法是在客户端生成 _id(如果它还不是您从程序员那里获得的文档的一部分)。