2017-01-16 4 views
0

Mit mongodb und mongoose in einem node.js-Projekt und ich fragte mich, ob ich sicherstellen mussIndex auf den _id-Feldern von eingebetteten Elementen?Erstellt mongodb automatisch einen Index für das _id-Feld von eingebetteten Dokumenten?

Das heißt, ich sehe, dass mongodb automatisch einen Index für _id Felder von Sammlungen erstellt, tut es auch dasselbe für _id Felder von eingebetteten Sammlungen?

{ 
    _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" 
       } 
       ] 
} 

Antwort

1

Mein Instinkt war nicht, so dass ich es einfach versucht:

> 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" 
    } 
] 
> 

keine Sieht aus wie es nicht automatisch Indizes für Subdokumente erstellen.

Verwandte Themen