Когда я вызываю sureIndex из оболочки mongo в коллекции для составного индекса, в объекте индекса автоматически создается поле _id типа ObjectId.
> db.system.indexes.find();
{ "name" : "_id_", "ns" : "database.coll", "key" : { "_id" : 1 } }
{ "_id" : ObjectId("4ea78d66413e9b6a64c3e941"), "ns" : "database.coll", "key" : { "a.b" : 1, "a.c" : 1 }, "name" : "a.b_1_a.c_1" }
Это имеет интуитивно понятный смысл, так как все документы в коллекции нуждаются в поле _id (даже system.indexes, верно?), Но когда я проверяю индексы, сгенерированные вызовом morphia sureIndex для той же коллекции *, тамне является _id свойством *.
Глядя на исходный код morphia, становится ясно, что он вызывает тот же код, который использует оболочка, но по какой-то причине (будь то факт, что я создаю составной индекс или индексирую встроенный документ, или и то, и другое)они дают разные результаты.Кто-нибудь может объяснить мне это поведение?