我是MongoDB的新手,并尝试重新排序数据库中的数组。
这是架构:
headline: String,
Galleryslides: [{type: ObjectId, ref: 'Galleryslide'}],
这是我使用的逻辑。顺便说一句,correctOrder是一个数组,其中包含新的数据库ID。
Gallery.findById(req.params.galleryId, function(err, gallery) {
var newArr = [];
req.body.ids.forEach(function(id, index) {
newArr[index] = Galleryslides.find({"_id" : id});
});
gallery.Galleryslides = newArr;
gallery.save(function() {
res.json({status: 'ok'});
});
});
当它运行时,没有任何反应 - 数据库中数组的顺序不会改变。 D'你知道更好的方法吗?
答案 0 :(得分:0)
在mongodb中,记录按natural order排序。你应该按照你输入的顺序得到它们,但是不能保证。
就像文档说的那样:
此排序是内部实现功能,您应该这样做 不依赖于其中的任何特定结构。
如果你想按_id
字段排序,你可以这样做(它将按_id索引排序):
Gallery.find().sort({ "_id": 1 })