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

时间:2016-11-17 14:15:26

标签: mongodb

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

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

我能想到的一件事是自动增量。或者有 mongo方式这样做吗?

1 个答案:

答案 0 :(得分:2)

如果您从文档中删除_id字段,mongo会自动为您添加一个字段,即:

  1. 保证是独一无二的
  2. 包含创建时间戳
  3. 许多其他功能。
  4. 见这里:https://docs.mongodb.com/v3.2/reference/method/ObjectId/

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

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