Php MongoDB:获取上次插入的\u id

Php MongoDB:获取上次插入的\u id,php,mongodb,Php,Mongodb,我对如何通过wire协议实现这一点感兴趣,因为我正在编写自己的驱动程序。PHP似乎会自动修改数组以包含_id字段。具体如何做到这一点?向mongod服务器发送了什么命令/查询 非常感谢您的帮助。我不知道php驱动程序,但是如果没有提供id,请检查Java驱动程序的代码(第169行): 要返回一个新的默认ObjectId我不知道php驱动程序,但是如果没有提供id,我将检查Java驱动程序的代码(在第169行): 如果您的驱动程序需要提供最后一次插入的_id,要返回新的默认ObjectId,最简单

我对如何通过wire协议实现这一点感兴趣,因为我正在编写自己的驱动程序。PHP似乎会自动修改数组以包含_id字段。具体如何做到这一点?向mongod服务器发送了什么命令/查询


非常感谢您的帮助。

我不知道php驱动程序,但是如果没有提供id,请检查Java驱动程序的代码(第169行):


要返回一个新的默认
ObjectId

我不知道php驱动程序,但是如果没有提供id,我将检查Java驱动程序的代码(在第169行):


如果您的驱动程序需要提供最后一次插入的_id,要返回新的默认
ObjectId

,最简单的方法是在客户端生成_id(如果它还不是您从程序员处获得的文档的一部分)。

如果您的驱动程序需要提供最后一次插入的_id,最简单的方法是在客户端生成_id,如果它还不是程序员提供的文档的一部分。

10Gen的许多驱动程序都是在客户端生成的(通过查看驱动程序的开源实现可以看出)。有什么问题吗?你试过什么?您编写驱动程序的语言是什么?值得注意的是,BSON ID几乎总是由客户端生成的;他们的规范是专门设计的,允许由分布式客户端生成,而不会发生冲突。10Gen的许多驱动程序都是在客户端生成的(通过查看驱动程序的开源实现可以看出)。有什么问题吗?你试过什么?您编写驱动程序的语言是什么?值得注意的是,BSON ID几乎总是由客户端生成的;它们的规范是专门设计的,允许分布式客户端生成它们而不会发生冲突。
public ObjectId() {
    _time = (int) (System.currentTimeMillis() / 1000);
    _machine = _genmachine;
    _inc = _nextInc.getAndIncrement();
    _new = true;
}