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]}})

扫描二维码关注公众号,回复: 5859543 查看本文章

猜你喜欢

转载自blog.csdn.net/qq_34557770/article/details/89189459