假设我在 Mongoose 中有 2 个 Schema,如下所示:
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);
});
}
});
数组中元素的顺序会保持不变吗?这里的目标是允许用户维护他们电影的播放列表顺序。如果在“填充”方法触发时,电影对象 ID 的数组顺序没有得到维护,那么这将不符合我的目的。因此,我想我会问在这方面知识更丰富的人。
如果这可行,那么我还有另一个任务是允许用户更改播放列表中电影的顺序,这应该是直接的,允许在数组中交换电影对象 id 索引。
提前感谢您的帮助。