Предположим, что у меня есть 2 схемы-х в Мангуста, которые выглядят так:MongoDb Заселите поддокумент массив (через Mongoose ОРМ): Поддерживает ли он заказ массива, когда Заселите называется
var movieSchema = mongoose.Schema({
name: String,
type: String
});
var moviePlaylistSchema = mongoose.Schema({
name: String,
movies: [{type: mongoose.Schema.Types.ObjectId, ref: 'Movie'}]
});
var Movie = mongoose.model('Movie', movieSchema);
var MoviePlaylist = mongoose.model('MoviePlaylist', moviePlaylistSchema);
Если запрос был сделан по следующим направлениям :
MoviePlaylist.find({}).populate('movies').exec(function(err, res) {
if (err) console.log('err', err);
else {
console.log('res', res);
res.forEach(function(elem, index) {
console.log('elem.name', elem.name);
});
}
});
Будет ли поддерживаться порядок элементов в массиве? Цель здесь заключается в том, чтобы позволить пользователю поддерживать порядок воспроизведения своих фильмов. Если при запуске метода «заполнить» порядок массивов идентификаторов объекта Movie не поддерживается, это не будет служить моей цели. Поэтому я подумал, что попрошу кого-то, кто более осведомлен в этой области.
Если это работает, у меня есть еще одна задача, которая позволяет пользователю изменять порядок воспроизведения фильмов в списке воспроизведения, который должен быть прямым, позволяя индексировать индекс объекта видеообъекта в массиве.
Спасибо за вашу помощь заранее.
Thx. Вопрос в том, поддерживает ли метод заполнения мангуста порядок необработанного массива. Однако я проверил с другом - и он дал мне эту ссылку на код заполнения мангуста. https://github.com/Automattic/mongoose/blob/master/lib/model.js#L2342. Он также дал мне ссылку на переполнение стека - что $ in не гарантирует порядок элементов массива - http://stackoverflow.com/questions/22797768/does-mongodbs-in-clause-guarantee-order. Однако, прочитав код на странице источника github - и я вижу подсказку о поддержании порядка элементов - см. Строку 2298 - 2317. Может кто-то проверить –
см. Обновленный ответ – snozza