Javascript Mongo';谁能找到并替换ID?

Javascript Mongo';谁能找到并替换ID?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我指的是Mongo节点驱动程序的方法 两个问题: 是否确实无法传递具有\u id属性的替换对象?当我传递该属性时它不起作用,当我移除该属性时它开始起作用 当数据库中的对象被替换时,新对象的\u id是什么?对我来说,它似乎与旧的\u id相同,但我不确定是否存在这种情况 这是事实,这是MongoDB的一个基本设计属性。由于分片等原因,您不能更改文档中的\u id。您必须替换文档,以供参考: 与旧的\u id相同,\u id在文档中不会更改 我有一个我很好奇的无关紧要的问题——如何工作?我认为它实

我指的是Mongo节点驱动程序的方法

两个问题:

  • 是否确实无法传递具有
    \u id
    属性的替换对象?当我传递该属性时它不起作用,当我移除该属性时它开始起作用

  • 当数据库中的对象被替换时,新对象的
    \u id
    是什么?对我来说,它似乎与旧的
    \u id
    相同,但我不确定是否存在这种情况

  • 这是事实,这是MongoDB的一个基本设计属性。由于分片等原因,您不能更改文档中的
    \u id
    。您必须替换文档,以供参考:

  • 与旧的
    \u id
    相同,
    \u id
    在文档中不会更改


  • 我有一个我很好奇的无关紧要的问题——如何工作?我认为它实际上是在创建一个新文档,当创建新文档时,它会生成一些以前从未使用过的
    \u id
    。@AdamZerner它不会创建新文档,而是用新内容更新旧文档。即使在替换文档内容时,实际上也不会替换文档。我知道这有点欺骗性,但是_id在任何情况下都是一个常数document@AdamZerner好的,我刚才仔细检查了一下,这里用“替换”这个词真的很糟糕。这是非常令人困惑的,但是在阅读文档之后,它本质上是FindAnyModify,但是它替换了文档中不包括_id的内容,因为MongoDB不允许这样做。函数中有一个upsert选项,用于upsert新文档,但在其他情况下,它不会用新文档替换实际文档_id@AdamZerner我在代码中告诉你:非常感谢你的澄清!