springcloud使-集成mongodb客户端和命令使用

49 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情

命令使用学习文档网站:

https://haicoder.net/mongodb/mongodb-count.html

CollectionNameA

db.getCollection("CollectionName").insert( {

    name: "名称"
} );

CollectionNameB

db.getCollection("CollectionNameB").insert( {
    _id: ObjectId("62abf42da6050000ad001dbb"),
    sex:"男"
} );

CollectionNameC

db.getCollection("CollectionNameC").insert( {
    _id: ObjectId("62ab013ea35b000031000440"),
    hight: "2"
} );

mongodb字符串类型转数字运算报错语句如何解决

db.getCollection("CollectionNameC").aggregate
( 

[{ "$match" : 

{ "createTime" : { "$gte" : "2022-06-14 18:55:44", "$lte" : "2022-06-21 18:55:44"}}}, 

{ "$sort" : { "createTime" : -1}}, 


{ "$group" : { "_id" : "$A", "count" : { "$sum" : 1}, "createTime" : 

{ "$push" : "$createTime"}, "timestamp" : { "$push" : "$timestamp"}, "maxTimestamp" :

 { "$max" : "$timestamp"}, "minTimestamp" : { "$min" : "$timestamp"}, "indexfeatureName" :

	{ "$first" : "$B"}}}, { "$match" : { "B" : { "$ne" : null}}}, 
	
	{ "$project" : 
	
	{ "_id" : 0, "A" : "$_id", 
	"createTime" : 1, "timestamp" : 1, 
	"count" : 1, 
	"maxTimestamp" :{"$convert":{"input":"$maxTimestamp","to":"double", "onError": "$maxTimestamp","onNull":"missing time"}} , 
	"minTimestamp" : {"$convert":{"input":"$minTimestamp","to":"double", "onError": "$minTimestamp","onNull":"missing time"}}, 
	"indexfeatureName" : 1, 
	"intervalTimestamp" : { "$subtract" : ["$maxTimestamp", "$minTimestamp"]}}}, 
	
	{ "$sort" : { "intervalTimestamp" : -1}}, 
	
	{ "$project" : { "intervalTimestamp" : 1, "A" : 1, "B" : 1}}, 

{ "$limit" : 5}


]


)
#$group根据A分组,查询它的数量为count。
#$project给分组的字段重新定义输出的值。
#$sort根据重新定义的输出字段--进行排序1为升序,-1为降序

根据分组、根据记录数量排序:

db.getCollection("CollectionNameB")

.find({ "createTime" : { "$gte" : ISODate("2022-06-15T00:00:00Z")
 }})
.aggregate([
{
$addFields: {
      convertedDate: { $toDate: "$createTime" }
   }
},
	$match
{$project:{  "_id":0,"convertedDate":"$convertedDate"
,"createTime":1}
}

])

根据时间查询:

db.getCollection("CollectionNameB").find({ "createTime" : { $gt: "2021-06-13 00:00:00" } } );

根据时间查询,根据分组、根据记录数量排序:

db.getCollection("CollectionNameB").aggregate([
{

$match:{

"createTime":{$gte:"2022-06-14",$lte:"2022-06-15 23:59:59"}

       }

},	
{$group:{"_id":{"A": "$A"},count:{$sum:1}  }},
	
{$project:{ "_id":0, "A":"$_id.A" ,  "count":"$count"}
},

{$sort:{count:1}}
	
]);

mongdb字符串时间类型转化问题--学习链接

https://www.656463.com/wenda/wfcBSONlxzfczhwrqMongoDBforJava3_533

https://cloud.tencent.com/developer/ask/sof/396195

https://cloud.tencent.com/developer/ask/sof/1416748/answer/1944879

mongdb时间范围查询--学习链接

时间范围查询:
https://blog.csdn.net/qq_38359685/article/details/113865582


https://blog.csdn.net/liuyifeng1920/article/details/53607975

https://blog.csdn.net/qgnczmnmn/article/details/107249908

https://www.cnblogs.com/xuliuzai/p/9802869.html#


https://blog.csdn.net/Xw_Vivian/article/details/102904641

条件match过滤-group分组并指定一个字段-project指定输出字段-sort排序-limit取几条

db.getCollection("CollectionNameB").aggregate([
{

$match:{

"createTime":{$gte:"2022-05-14",$lte:"2022-06-16 23:59:59"}

       }

},	
{$group:{"_id":{"A": "$A"},count:{$sum:1} 

, 'indexName': {'$first': '$indexName'}
 }},
	
{$project:{ "_id":0, "A":"$_id.A" ,  "count":"$count","B":"$B"}
},

{$sort:{count:1}}
	
	,

{$limit:2}
	
]);

统计分组七天每天的次数

db.getCollection("CollectionNameB").aggregate([
{

$match:{

"createTime":{$gte:"2022-06-09",$lte:"2022-06-16 23:59:59"}

       }

},	
{  
        $project :{new_time_stamp :{$substr :["$createTime",5,5]},"_id":0,createTime:1,}  
          
    }  
		
,  
{  
      $group : {_id :"$new_time_stamp",count:{$sum:1}}  
      
} 

	,	
{$project:{ "_id":0, "name":"$_id" ,  "value":"$count"}
} 
	,{$sort:{name:1}}  
]);

project().andExpression()添加表达式异常解决

mongotemplate Aggregation.project().andExpression() 报错 Expected ‘rsquare(])‘ but was ‘comma(,)

将expression中的数组符号[]全部替换成{}就ok

进行时间的加减

db.getCollection("collections_name").aggregate( [   


{$match: { createTime: { $lte: '2021-06-17 00:00:00' , $gte: '2021-06-18 00:00:00' } } },  


{$project: 
{          
createTime:1,         
date1: { $dateFromString: { dateString: '$createTime', } },  //String 转 date         
date2: { $add : [ { $dateFromString: { dateString: '$createTime' } } , 3*24*60*60*1000 ] },  
//时间加3天,对应的减三天采用 $subtract          
date3: { $dateToString: { format: "%Y-%m-%d", date: { $dateFromString: { dateString: '$createTime' } } } },  
//String转时间,并按指定格式显示         
date4: { $dateToString: { format: "%Y-%m-%d", date: { $add : [ { $dateFromString: { dateString: '$createTime' } } , 3*24*60*60*1000 ] } } },  
//加上指定时间,并按指定格式显示         
date5: {$max: '$createTime'}  //查看最大时间      
}  
}   


] )

数据的加减

db.getCollection("A").aggregate( [   


{$match: { createTime: { $lte: '2021-06-18 00:00:00' , $gte: '2021-06-17 00:00:00' } } }
,  


{$project: 
{          

date1:{$max:'456464654'},
date2:{$max:'84948646'},

date3: { $subtract: ['$date1','$date2'] }  //String 转 

}   
}
,

{$project: 
{          

date3: { $subtract: [{$toInt:'$date1'},{$toInt:'$date2'}] } //String 转 

}   
}

] )

springcloud的集成使用mongodb客户端后续再加-有问题可以评论问我-我可以帮写