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 查看本文章