出于某种原因,$ position在此代码中没有做任何事情。有什么想法吗?:
Parent.findByIdAndUpdate(
id,
{$push: {"wishList": item, $position: 0}},
{safe: true, upsert: true},
function(err, model) {
response.send("1");
}
);
这是架构:
/**
Defines Parent schema for mongo DB
*/
module.exports = {
name : String,
dateAdded : Date,
plHash : String,
items : [{
author : String,
name : String,
dateAdded : Date
}],
wishList : [{
author : String,
name : String,
dateAdded : Date
}],
};
答案 0 :(得分:1)
关注docs
要使用$ position修饰符,它必须以$ each修饰符出现。
您可以尝试在更新中添加$each
修饰符:
Parent.findByIdAndUpdate(id,
{
$push: {
wishList: {
$each: [item], // Assuming item = {author:"foo", name:"bar", dateAdded:date }
$position: 0
}
}
}, {safe: true, upsert: true}, function(err, model){
response.send("1");
});