Сгенерированный MongoDB ObjectID для массивов идет по убыванию, а не по возрастанию - PullRequest
0 голосов
/ 24 января 2020

У меня есть следующий документ в коллекции в моей базе данных MongoDB:

"_id":"5e2088563824e72ea5ee7095",
"image":"xxx",
"questions":[ 
    {
       "_id":"5e2088563824e72ea5ee70c3",
       "text":"test test test",
    },
    {
       "_id":"5e2088563824e72ea5ee70be",
       "text":"what is your age 1?",
    },
    {
       "_id":"5e2088563824e72ea5ee70b9",
       "text":"what is your gender 1?",
    },
    {
       "_id":"5e2088563824e72ea5ee70b4",
       "text":"what is your blood type 1?",
    },
    {
       "_id":"5e2088563824e72ea5ee70af",
       "text":"what is your blood type 1?",
    }
],
"__v":0

Без какой-либо сортировки массива вопросов, документ всегда будет возвращаться так, как в естественном порядке возрастания: введенные данные.

Странно то, что сгенерированные идентификаторы расположены в обратном порядке, как вы можете видеть:

key 0 => 5e2088563824e72ea5ee70c3
key 1 => 5e2088563824e72ea5ee70be
key 2 => 5e2088563824e72ea5ee70b9
key 3 => 5e2088563824e72ea5ee70b4
key 4 => 5e2088563824e72ea5ee70af

Я ожидал, что сгенерированный идентификатор совпадет с ключом массива ( по возрастанию), поэтому оно должно выглядеть следующим образом:

key 0 => 5e2088563824e72ea5ee7096
key 1 => 5e2088563824e72ea5ee709b
key 2 => 5e2088563824e72ea5ee70a0
key 3 => 5e2088563824e72ea5ee70a5
key 4 => 5e2088563824e72ea5ee70aa

Однако поведение сгенерированных идентификаторов документов является нормальным, как автоматическое увеличение MySQL (по возрастанию). Только вложенные массивы имеют обратный порядок.

Это ошибка или нормальное поведение? Почему это так, если это нормально?

Я использую Mon goose для создания документов.

...