Mongoose に次のような 2 つのスキーマがあるとします。
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);
});
}
});
配列内の要素の順序は維持されますか? ここでの目的は、ユーザーが自分の映画のプレイリストの順序を維持できるようにすることです。「populate」メソッドが起動したときに、Movie オブジェクト Id の配列順序が維持されていない場合、これは私の目的を果たしません。そこで、この分野に詳しい人にお願いしようと思いました。
これが機能する場合、ユーザーがプレイリスト内の映画の順序を変更できるようにする別のタスクがあります。これは、映画オブジェクト ID インデックスを配列で交換できるようにすることで簡単に行うことができます。
事前にご協力いただきありがとうございます。