MongoTemplate简单API

https://blog.csdn.net/weixin_44004647/article/details/88580208

对于Date类型的比较 :

    db.Trade.find({"$and":[{"pfOrderTime":{"$gte":new Date("2018-1-1")}},{"pfOrderTime":{"$lte":new Date("2020-1-1")}}]})
   .projection({})
   .sort({_id:-1})
   .limit(100)

Trade:name of collection

pfOrderTime:要比较的Date字段

new Date的方式也可以用


#查找满足条件的一条数据
db.Trade.findOne({"businessUnitCode":"TBWEIRUAN2"})

#对于Date类型的比较 :也可以使用new ISODate()进行比较
    db.Trade.find({
	"$and": [{
		"pfOrderTime": {
			"$gte": new Date("2018-1-1")
		}
	}, {
		"pfOrderTime": {
			"$lte": new Date("2020-1-1")
		}
	}]
    })
   .projection({})
   .sort({_id:-1})
   .limit(100)
   
#根据projection做fliter 0代表该字段不显示 1代表只看这些为1的字段
#_id 默认值是1 
db.Trade.find({})
   .projection({"_id":0,"businessUnitCode":0})
   .sort({_id:-1})
   .limit(100)

#只看id字段 sort表示按照字段进行排序 -1 由大到小 1由小到大
db.Trade.find({})
   .projection({_id:1})
   .sort({_id:-1})
   .limit(100)
   
#效果一样   
// db.Trade.aggregate({$project: {_id:1}})
db.Trade.aggregate()
    .project({_id:1})

#聚合函数求和分组
db.Trade.aggregate()
    .group({
          _id: "$businessUnitCode",
         count:{"$sum":1}
    })

 地方

 

#聚合函数查每个职位的总工资和平均工资 sum avg max min 
db.emps.aggregate().group({
      _id: "$job",
      count:{"$sum":1},
      job_salary_sum:{"$sum":"$salary"},
      job_salary_avg:{"$avg":"$salary"}
})

#将查询的数据存到数组中  push
db.emps.aggregate()
    .group({
          _id: "$job",
          salary:{"$push":"$salary"}
    })
    
#将查询的结果放到数组中并且去重复 addToSet
db.emps.aggregate()
    .group({
          _id: "$job",
          name: {"$push":"$name"},
          salary:{"$addToSet":"$salary"}
    })    
    
    
#多条件查询
db.emps.find({salary:{$gte:2000,$lte:5000}})   

#$nin 不在数组的范围内  $in表示在数组内 $all 数组里必须全满足
db.emps.find({salary:{$nin:[1000,2000,3000]}})
db.emps.find({"salary":{$all:[1000]}})

#模糊查询 查'小’开头 包含 结尾的
db.emps.find({name:/^小/})
db.emps.find({name:/小/})
db.emps.find({name:/小$/})

#使用distinct去重
db.emps.distinct("name")

#效果相同
// db.emps.find({age:{$gt:30}})
db.emps.find({$where:"this.age>30"})

#查询记录数目统计
db.emps.find().count()

#执行删除
db.emps.remove({job:{$in:["Clerkk","Clermk"]}})

#前者查询返回find的总条数 后者返回find之后skip 然后再limit的数目
#简单说 后者返回显示的数目
db.emps.find().skip(4).limit(2).count()
db.emps.find().skip(4).limit(2).count(true)

#查询字段为null的 即赋值的时候定义成null 区别于没有这个字段
#前者查出的结果包含没有定义该字段的  后者查出来的结果满足要求
db.emps.find({job:null})
db.emps.find({job:{$exists:true,$in:[null]}})

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MongoTemplate是Spring Data MongoDB库中提供的API,用于在Java应用程序中与MongoDB数据库交互。 MongoTemplate提供了一系列方法,用于执行CRUD操作(创建、读取、更新、删除数据)。例如,我们可以使用MongoTemplate的insert()方法向数据库插入新的文档数据,使用find()方法查询特定的文档数据,使用update()方法更新文档数据,使用remove()方法删除文档数据等。这些方法都提供了多种重载形式,可以根据具体需求选择使用。 除了常规的CRUD操作外,MongoTemplate还提供了丰富的查询功能。可以使用查询构建器(Query)构建复杂的查询条件,可以使用Criteria对象添加约束条件,可以使用Sort对象指定查询结果的排序方式等。另外,MongoTemplate还支持分页查询,以及支持原生查询语句的执行。 MongoTemplate还提供了一些高级功能,例如,可以通过指定查询字段的方式来进行字段选择,可以使用强类型查询来增加查询的安全性,可以进行聚合操作,可以进行地理位置查询等。 此外,MongoTemplate还支持事务管理。它可以与Spring的事务管理器(Transaction Manager)进行集成,保证多个操作的原子性。 总之,MongoTemplate是一个功能强大、易于使用的MongoDB数据库访问工具,它提供了丰富的API,可以满足不同场景下的数据访问需求。无论是简单的数据操作还是复杂的查询与分析,MongoTemplate都能提供便捷的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值