报表生成中使用了mongodb的$cond 及其if else语句;mongodb不支持case when语句;
可参考mongodb样例链接:https://docs.mongodb.com/manual/reference/operator/aggregation/cond/#example
功能:对影片观看时间统计用户数(1、十分钟以内观看记录用户;2、10-30分钟;3、30-80分钟;4、80分钟以上);
temp_result = self.db[Constants.action_table].aggregate(
"$match":{'actionInfo.status':7}
{"$group": {"_id": {
"mac": '$mac',
"sn": '$sn',
"day_time": {"$substrBytes": ["$time", 0, 10]}
"duration": {'$sum': "$actionInfo.consumeTime"}
{ "$project":
"_id": 0,
"day_time": "$_id.day_time",
"mac":"$_id.mac",
"sn": "$_id.sn",
"duration":"$duration",
"discount": {
"$cond": {
"if": { "$lt": ['$duration', 600000]},"then": "10分钟内",
"else": {
"$cond": {
"if": { "$and": [{ "$gte": ["$duration",600000 ]}, { "$lt": ["$duration", 18000000]}]},"then": "10-30分钟",
"else": {
"$cond": {
"if": { "$and": [{ "$gte": ["$duration", 18000000]}, { "$lte": ["$duration", 48000000]}]},"then" : "30-80分钟",
"else": "80分钟以上"
{"$out": "TotalUserAverageDailyLengthRound_temp"}]);
self.db["TotalUserAverageDailyLengthRound_temp"].aggregate([
{"$group": {"_id": {
"day_time": '$day_time',
"discount": '$discount',
}, "countUser": {'$sum': 1}}},
{"$project":
"_id": 0,
"day_time": "$_id.day_time",
"discount": "$_id.discount",
"countUser": "$countUser"}},
{"$out": self.currentTable()}]);
return temp_result;
报表生成中使用了mongodb的$cond 及其if else语句;mongodb不支持case when语句;可参考mongodb样例链接:https://docs.mongodb.com/manual/reference/operator/aggregation/cond/#example功能:对影片观看时间统计用户数(1、十分钟以内观看记录用户;2、10-30分钟;3、30-80分钟;...
// 条件
$match : {bookDate:{$gte:new Date("2021-06-11 16:00:00"),$lt:new Date("2021-06-14 16:00:00")}}
{$group:{
_id: 0,
// 总数
'总预约数'...
ConditionalOperators.Cond collectionCount = ConditionalOperators.when(Criteria.where("sourceOfCertificate").is("1"))
.then(1).otherwise("");
ConditionalOperators.Cond fillCount =...
db.adminUser.insertOne({
"openId": "admin_b075df20d85711e98ba819498dwf0854",
"jurisdiction": "SSS",
"email": "15908619975@163.com",
"password": "eyJhbGciOiJIUzI1NiJ9.Y2hlbmJpZGExMjM.MMYE...
$ifNull用于判断第一个表达式是否为 NULL,如果为 NULL 则返回第二个参数的值,如果不为 NULL 则返回第一个参数的值。
$ifNull表达式格式为:
{ $ifNull: [ <expression>, <replacement-expression-if-null> ] }
原始数据:
{ "_id" : 1, "item" : "abc1", ...
如果你想做的就不仅仅是将数据从数据里面取出来,那么就需要使用聚合查询
一般聚合操作 由一连串的构件组成
主要有筛选($ match),投射($ project),分组($ group),排序($ sort),限制($ limit ),跳过($ skip)
1. $ match
用于对文档数据进行筛选
db.temperature.aggregate([{$match:{}}])
//效果相当于
db.temperature.find({})
至于查询条件我就不介绍
文章目录前言一、字段切割&条件判断1.$substr:['字段名',开始下标,结束下标]2.$cond:{if...then...else}二、联表查询&类型转换&拆分数组1.$lookup2.$toDouble、\$convert3.$unwind总结
本文章主要是记录个人在学习或者工作中使用MongoDB开发时遇到的一些奇葩经历;由于MongoDB存储数据比较自由,导致在查询或者统计数据的时候,需要把数据类型进行转换或者空数据处理等等…如果家人们看完这篇文章发现有问题或者
MongoDB Community Server(mongodb-windows-x86_64-5.0.8-signed.msi)适用于RedHat / CentOS 7.0
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
赠送jar包:
mongodb-driver-sync-4.2.3.jar;
赠送原API文档:
mongodb-driver-sync-4.2.3-javadoc.jar;
赠送源代码:
mongodb-driver-sync-4.2.3-sources.jar;
赠送Maven依赖信息文件:
mongodb-driver-sync-4.2.3.pom;
包含翻译后的API文档:
mongodb-driver-sync-4.2.3-javadoc-API文档-中文(简体)版.zip;
Maven坐标:org.
mongodb:
mongodb-driver-sync:4.2.3;
标签:
mongodb、driver、sync、中文文档、jar包、java;
使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。
人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心
使用。
MongoDB Community Server(mongodb-org-shell-5.0.4-1.el7.x86_64.rpm)适用于RedHat / CentOS 7.0
MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。
MongoDB是一种高性能、可伸缩的非关系型数据库,在各个行业中都有广泛的应用,而麒麟Kylin v10则是一种高效稳定的操作系统。为了能在这个操作系统上运行MongoDB,需要进行移植。本文将介绍MongoDB-4.0.1在麒麟Kylin v10上的移植指南。
1.环境准备
在进行移植之前,需要确认环境是否准备好。确保Kylin v10的操作系统版本为最新版本,拥有足够的空间以及安装了gcc,g++, make, automake和libtool等编译工具和库文件。同时,还需要安装scons作为MongoDB的编译工具。
2.源代码下载
从MongoDB的官方网站上下载最新版本的源代码并解压缩到指定目录下。
3.修改并编译
在解压缩后的MongoDB源码目录下,执行以下命令:
$ git checkout r4.0.1
$ scons --disable-warnings-as-errors -j<core number>
这将会自动对源代码进行编译,并在bin目录下生成mongod、mongo等可执行程序。
4.修改配置文件
在Kylin v10的操作系统环境下,可能需要对MongoDB的配置文件进行一定的修改,以保证MongoDB服务器的正常运行。例如,需要修改MongoDB所使用的数据存储位置和可用端口号等。
5.启动MongoDB服务器
执行以下命令来启动MongoDB服务器:
$ mongod --fork --dbpath=<path to data files> --port=<port number>
其中,--fork参数表示在后台启动MongoDB服务器,--dbpath参数用于指定MongoDB的数据存储路径,--port参数指定MongoDB服务器监听的端口号。
6.连接管理
使用mongo命令连接MongoDB服务器,并进行相关管理操作。在连接后,可以进行数据添加、查询、删除等操作。
以上就是MongoDB-4.0.1在麒麟Kylin v10上的移植指南。在上述步骤完成后,就可以在Kylin v10操作系统上运行MongoDB,并进行相应的数据管理操作。