Mongodb更新数组$sort操作符
来源:互联网 发布:tensorflow 关闭sess 编辑:程序博客网 时间:2024/06/05 20:51
一、$sort修饰符是在使用$push操作符的时候给数组元素排序;
$sort修饰符必须和$each修饰符一起使用,你可以传一个空数组给$each修饰符来使$sort修饰符起作用;
{ $push: { <field>: { $each: [ <value1>, <value2>, ... ], $sort: <sort specification> } }}
二、通过文档中的字段对文档进行排序
一个students
集合包含如下文档:
{ "_id": 1, "quizzes": [ { "id" : 1, "score" : 6 }, { "id" : 2, "score" : 9 } ]}
如下更新添加文档到quizzes数组中,然后通过字段score对数组进行升序排列:
db.students.update( { _id: 1 }, { $push: { quizzes: { $each: [ { id: 3, score: 8 }, { id: 4, score: 7 }, { id: 5, score: 6 } ], $sort: { score: 1 } } } })
更新之后数组元素是按照score字段升序排列的:
{ "_id" : 1, "quizzes" : [ { "id" : 1, "score" : 6 }, { "id" : 5, "score" : 6 }, { "id" : 4, "score" : 7 }, { "id" : 3, "score" : 8 }, { "id" : 2, "score" : 9 } ]}
三、数组元素是非文档类型的排序
一个students
集合包含如下文档:
{ "_id" : 2, "tests" : [ 89, 70, 89, 50 ] }
如下操作添加另外两个元素到scores数组中,然后按照元素排序:
db.students.update( { _id: 2 }, { $push: { tests: { $each: [ 40, 60 ], $sort: 1 } } })
更新过的文档scores数组是按照升序排列的:
{ "_id" : 2, "tests" : [ 40, 50, 60, 70, 89, 89 ] }
四、更新数组只使用sort
一个students
集合包含如下文档:
{ "_id" : 3, "tests" : [ 89, 70, 100, 20 ] }
更新tests字段并且并且降序排列;匹配
{ $sort: -1 }
和匹配一个空数组给$each修饰符,就像如下文档:db.students.update( { _id: 3 }, { $push: { tests: { $each: [ ], $sort: -1 } } })
操作的结果是更新文档字段并且按照降序排列:
{ "_id" : 3, "tests" : [ 100, 89, 70, 20 ] }
五、$sort和$push其它的一些修饰符使用
一个students集合文档有如下文档:
{ "_id" : 5, "quizzes" : [ { "wk": 1, "score" : 10 }, { "wk": 2, "score" : 8 }, { "wk": 3, "score" : 5 }, { "wk": 4, "score" : 6 } ]}
如下的$push操作符使用:
$each修饰符添加多个元素到文档的集合中;
$sort修饰符排列所有的文档中的元素按score降序;
$slice取排序后前三个文档集合;
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
- Mongodb更新数组$sort操作符
- Mongodb更新数组操作$each修饰符
- Mongodb更新数组$push操作符
- MongoDB之数组更新操作
- mongodb-更新操作符
- MongoDB数组更新操作$addToSet和$each修饰符
- MongoDB多维数组的更新操作
- Mongodb数组操作$(update)、$占位符更新嵌套数组、嵌套文档集合
- Mongodb更新操作$min操作符
- mongodb 批量更新 操作文档的数组键
- Mongodb更新数组$position修饰符
- Mongodb更新数组$pull修饰符
- Mongodb更新数组$pop修饰符
- mongodb 更新数组
- Mongodb数据更新命令、操作符
- Mongodb数据更新命令、操作符
- Mongodb数据更新命令、操作符
- Mongodb数据更新命令、操作符
- Android Studio gradle找不到javax.*包
- 位数问题
- C++实训5
- tomcat部署项目
- POJ-1028-Web Navigation
- Mongodb更新数组$sort操作符
- 树莓派python入门(1):树莓派系统安装与初次连接
- C99与C89主要区别
- 第四章、bash特性详解
- 记牌器程序
- python 文件操作
- 求圆内部面积占比
- Linux下一个简单的进度条
- Matrix derivatives(矩阵求导)