Mongodb 为文档创建唯一索引';s存储在数组中的对象

Mongodb 为文档创建唯一索引';s存储在数组中的对象,mongodb,Mongodb,如何为存储在数组中的文档对象创建唯一索引 { _id: 'documentId', books: [ { unique_id: 1, title: 'Asd', }, { unique_id: 2, title: 'Wsad', } ... ] } 我能想到的一件事是自动递增。或者是否有任何mongo方法可以这样做?如果您从您的文档中删除\u id字段,mongo将自动为您添加一个,即: 保证是独一无二的 包含创建的时间戳 还有很多其他的

如何为存储在数组中的文档对象创建唯一索引

{
_id: 'documentId',
books: [
  {
    unique_id: 1,
    title: 'Asd',
  },
  {
    unique_id: 2,
    title: 'Wsad',
  }
  ...
 ] 
}

我能想到的一件事是自动递增。或者是否有任何mongo方法可以这样做?

如果您从您的文档中删除
\u id
字段,
mongo
将自动为您添加一个,即:

  • 保证是独一无二的
  • 包含创建的时间戳
  • 还有很多其他的功能
  • 请看这里:

    再次查看示例对象,您是指books数组中的ID吗? 如果是这样,您也可以使用ObjectID为它们赋值,就像在文档根的_id字段中一样:

    doc.books.forEach(x => { x.unique_id = new ObjectId() } );
    

    如果从文档中删除
    \u id
    字段,
    mongo
    将自动为您添加一个字段,即:

  • 保证是独一无二的
  • 包含创建的时间戳
  • 还有很多其他的功能
  • 请看这里:

    再次查看示例对象,您是指books数组中的ID吗? 如果是这样,您也可以使用ObjectID为它们赋值,就像在文档根的_id字段中一样:

    doc.books.forEach(x => { x.unique_id = new ObjectId() } );
    

    是的,但我想要实现的是在文档和它的数组对象上都有我的唯一id。因此,考虑到当我
    updateOne()
    我的文档和
    $push
    到(books)数组时,我需要做的只是使用新属性
    newobjectid()
    更新正在推送的数据(单个图书)。是的,在创建新图书条目时,只需分配
    newobjectid()
    对于您的id字段,顺便说一句,通常使用
    \u id
    作为字段的名称,即使对于内部对象也是如此,因此我会将其创建为
    {\u id:new ObjectId(),标题:'hello'}
    好的,非常感谢您,先生!它工作得很好,就像你说的:)。对,但我想要实现的是在文档和它的数组对象上都有我唯一的id。因此,考虑到当我
    updateOne()
    我的文档和
    $push
    到(books)数组时,我需要做的只是使用新属性
    newobjectid()
    更新正在推送的数据(单个图书)。是的,在创建新图书条目时,只需分配
    newobjectid()
    对于您的id字段,顺便说一句,通常使用
    \u id
    作为字段的名称,即使对于内部对象也是如此,因此我会将其创建为
    {\u id:new ObjectId(),标题:'hello'}
    好的,非常感谢您,先生!它工作得很好,就像你说的:)。你说的是唯一索引,然后是自动增量。我很困惑。你想达到什么目的?我想让我的每一本书都有一个独立的独特属性,这样我就可以区分它们了。例如,在库文档中考虑“JavaScript手册”,用另一个属性LabyActhFruttOffice窗口,数组存储<代码> UngQuyID/<代码>三个七。我很困惑。你想达到什么目的?我想让我的每一本书都有一个独立的独特属性,这样我就可以区分它们了。例如,在库文档中考虑“JavaScript手册”,用另一个属性LabyActhFruttOffice窗口,数组存储<代码> UngQuyID ID/代码>三个七。