Mongo更新数组$slice修饰符
来源:互联网 发布:电极式暖手宝 知乎 编辑:程序博客网 时间:2024/06/05 16:06
一、$slice元素会限制数组元素的个数在进行$push操作的时候,$slice修饰符必须和$each修饰符一起使用,你也可以传递一个空的数组给$each修饰符,因此只有$slice修饰符起作用。
{ $push: { <field>: { $each: [ <value1>, <value2>, ... ], $slice: <num> } }}
二、一个students集合包含如下文档:
{ "_id" : 1, "scores" : [ 40, 50, 60 ] }
如下操作添加新的元素到scores数组中,然后使用$slice修饰符截取后面五个元素
db.students.update( { _id: 1 }, { $push: { scores: { $each: [ 80, 78, 86 ], $slice: -5 } } })
操作的结果是取得了后面五个元素:
{ "_id" : 1, "scores" : [ 50, 60, 80, 78, 86 ] }
三、从数组的前前面截取
一个students集合包含如下文档:
{ "_id" : 2, "scores" : [ 89, 90 ] }
如下操作添加新元素到scores数组中,然后使用$slice修饰符截取前三个元素
db.students.update( { _id: 2 }, { $push: { scores: { $each: [ 100, 20 ], $slice: 3 } } })
操作的结果是:
{ "_id" : 2, "scores" : [ 89, 90, 100 ] }
四、只使用$slice更新数组
一个students集合包含如下文档:
{ "_id" : 3, "scores" : [ 89, 70, 100, 20 ] }
db.students.update( { _id: 3 }, { $push: { scores: { $each: [ ], $slice: -3 } } })
结果是截取了后三个元素
{ "_id" : 3, "scores" : [ 70, 100, 20 ] }
五、$slice和$push的其他修饰符$sort、$each一起使用
一个students集合文档如下:
{ "_id" : 5, "quizzes" : [ { "wk": 1, "score" : 10 }, { "wk": 2, "score" : 8 }, { "wk": 3, "score" : 5 }, { "wk": 4, "score" : 6 } ]}
使用修饰符对集合文档进行操作:
db.students.update( { _id: 5 }, { $push: { quizzes: { $each: [ { wk: 5, score: 8 }, { wk: 6, score: 7 }, { wk: 7, score: 6 } ], $sort: { score: -1 }, $slice: 3 } } })
操作结果如下:
{ "_id" : 5, "quizzes" : [ { "wk" : 1, "score" : 10 }, { "wk" : 2, "score" : 8 }, { "wk" : 5, "score" : 8 } ]}
阅读全文
0 0
- Mongo更新数组$slice修饰符
- Mongodb更新数组操作$each修饰符
- Mongodb更新数组$position修饰符
- Mongodb更新数组$pull修饰符
- Mongodb更新数组$pop修饰符
- mongo 更新数组 键值对
- mongo中$push的$slice子操作符的理解
- mongo两级数组嵌套数据更新问题
- MongoDB数组更新操作$addToSet和$each修饰符
- 截取数组元素slice
- 数组 slice 和splice
- 浅谈数组算法slice
- mongo bulk批量更新
- Mongo更新文档操作
- mongo 数组 list 操作方法
- mongo-pymongo 数组操作
- mongo操作数组字段
- 论mongo-connector如何将MongoDB中的json数组和嵌套对象更新至Solr引擎
- 2.add two sum
- NOIP2002过河卒
- STM32定时器学习---基本定时器
- 012_LeetCode_12 Integer to Roman 题解
- 51nod 1639 绑鞋带(递推)
- Mongo更新数组$slice修饰符
- dll动态链接库文件编写
- 疯狂输出⚔Java中查表法的使用
- C++中string.find()函数与string::npos
- 深入理解Basic Paxos协议
- JackSon反序列化报错,Unrecognized field, not marked as ignorable
- AtCoder Regular Contest 085 F NRE 线段树优化dp
- 设置添加环境变量Path
- 必须返回对象时,别妄想返回其reference