2017-01-16 2 views
0

Использование mongodb и mongoose в проекте node.js, и я задавался вопросом, должен ли я обеспечить makeIndex для полей _id встроенных элементов?Создает ли mongodb индекс в поле _id встроенных документов?

То есть, я вижу, что mongodb автоматически создает индекс в полях _id коллекций, делает ли он также то же самое для полей встроенных коллекций?

{ 
    _id: "joe", 
    name: "Joe Bookreader", 
    addresses: [ 
       { 
        _id: "someid1", 
        street: "123 Fake Street", 
        city: "Faketon", 
        state: "MA", 
        zip: "12345" 
       }, 
       { 
        _id: "someid2", 
        street: "1 Some Other Street", 
        city: "Boston", 
        state: "MA", 
        zip: "12345" 
       } 
       ] 
} 

ответ

1

Мой инстинкт был нет, так что я просто попытался это:

> db.foo.find() 

> db.foo.getIndexes() 
[ 
    { 
     "v" : 1, 
     "key" : { 
      "_id" : 1 
     }, 
     "name" : "_id_", 
     "ns" : "foo.foo" 
    } 
] 

> db.foo.insert({ 
... _id: "joe", 
... name: "Joe Bookreader", 
... addresses: [ 
...     { 
...     _id: "someid1", 
...     street: "123 Fake Street", 
...     city: "Faketon", 
...     state: "MA", 
...     zip: "12345" 
...     }, 
...     { 
...     _id: "someid2", 
...     street: "1 Some Other Street", 
...     city: "Boston", 
...     state: "MA", 
...     zip: "12345" 
...     } 
...    ] 
... }) 
WriteResult({ "nInserted" : 1 }) 

> db.foo.getIndexes() 
[ 
    { 
     "v" : 1, 
     "key" : { 
      "_id" : 1 
     }, 
     "name" : "_id_", 
     "ns" : "foo.foo" 
    } 
] 
> 

Выглядит как никто не может автоматически создавать индексы поддокументами.

Смежные вопросы