我有一个时间字段的mongo文档:
field :times, type: Array, default: []`
目前,在更新时,我将再次使用,找到它的位置并在保存时覆盖整个数组。有一个更好的方法吗?有没有办法通过Mongo以某种方式自动执行此操作?
答案 0 :(得分:0)
您可以在$sort
$push
$push: {
innerElement: {
$each: [
{
"new-entry": ObjectId("xxxxxxx"),
"createdOn": ISODate()
}
],
$slice:-10,
$sort: {'createdOn': 1}
}
答案 1 :(得分:0)
在$position
中执行$push
时,您可以使用update(...)
运算符:
>db.students.save({ "_id" : 1, "scores" : [ 50, 60, 70, 100 ] })
>db.students.update(
{ _id: 1 },
{
$push: {
scores: {
$each: [ 20, 30 ],
$position: 2
}
}
}
)
> db.students.find()
{ "_id" : 1, "scores" : [ 50, 60, 20, 30, 70, 100 ] }
请参阅 - https://docs.mongodb.com/manual/reference/operator/update/position/#up._S_position