MongoDB常用的语法

本文介绍了如何使用MongoDB进行数据操作,包括根据ID删除和修改文档、聚合查询计费总额与退款总额,以及多表关联和分组统计。通过实例展示了删除(_id)、更新平台ID、分组求和、条件筛选和数据关联等关键技巧。
摘要由CSDN通过智能技术生成

1、根据ID主键删除一条数据

db.user_main.remove({_id:ObjectId("60f9618b07043d180")});

2、根据ID主键修改一条数据的 platformId 字段

db.user_main.update({_id : ObjectId("6113c8d38822c62c")},{$set:{platformId:"68203"}});

3、根据查询条件,然后按照 platformCode 分组(如果不需要分组,则_id:null), total_fee 求和

db.user_main.aggregate([
	{
		$match:{
			trade_time:{$gte:ISODate("2021-06-01T00:00:14.560Z"),$lte:ISODate("2021-06-31T23:59:00Z")}
  		}
	},
	{
		$group: {
			_id: "platformCode",
			totala:{$sum:"$total_fee"}
		} 
	}
]);

4、根据查询条件,然后按照 platformCode 分组(如果不需要分组,则_id:null), refund_fee 求和(refund_fee为字符串,需要转成double)

db.user_main.aggregate([
	{
		$match:{
			trade_time:{$gte:ISODate("2021-06-01T00:00:14.560Z"),$lte:ISODate("2021-06-31T23:59:00Z")}
		}
	},
	{
		$group: {
			_id: "platformCode",
			totala:{
				$sum:{$toDouble:"$refund_fee"} 
			}
		} 
	}
]);

5、根据mainId列段分组查询,查询统计结果大于1的

db.user_main.aggregate([
	{
		$group: {
			_id: "$mainId",
			count:{$sum:1}
		}
	},
	{
		$match:{
			"count":{"$gt":1}
		}
	}   
]);

6、多表关联,用主表ID关联子表的mainId。user_main表Id为ObjectId类型,改成String,关联user_platform表的mainId

db.user_main.aggregate([
	{
		"$project": {
			"id": {
				"$convert": {
					"input": "$_id",
					"to": "string"
				}
			}
		}
	}, 
	{
		"$lookup": {
			"from": "user_platform",
			"localField": "id",
			"foreignField": "mainId",
			"as": "member"
		}
	}
]);

7、多表关联(查询platformId、firstTime字段),用主表ID关联子表的mainId。主表Id为ObjectId类型,改成String,关联user_platform表的mainId

db.user_main.aggregate([
	{
		"$project": {
			"id": {
				"$convert": {
					"input": "$_id",
					"to": "string"
				}
			}
		}
	}, 
	{
		"$lookup": {
			"from": "user_platform",
			"localField": "id",
			"foreignField": "mainId",
			"as": "member"
		}
	},
	{
		"$project":{
			"_id":false,
			"userId":"$member.platformId",
			"createTime":"$member.firstTime"
		}
	}
]);

第一次编辑,希望能给广大小伙伴带来些许的帮助。不完善之处,还请小伙伴们指出,后续慢慢完善,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值