1、mongoDB根据时间范围区间查询
//大于等于:“$gte”、小于等于:“$lte”、大于:“$gt”、小于:“$lt”
db.abc.find({
startTime: {
'$gte': 1619588947000,
'$lte': 1619589991000
}
})
2、mongoDB 比较两个参数字段的值的大小
db.abc.find({
"$where": "this.scoreA > this.scoreB"
})
3、mongoDB 查询返回指定字段
db.abc.find({
"$where": "this.scoreA > this.scoreB"
}, {name: 1, sex: 1})
4、mongoDB 根据某个字段排序,并且分页,-1为倒序,1为正序
db.abc.find().sort({startAt:-1}).limit(3)
5、mongoDB 跳过指定条数
db.abc.find().skip(2)
6、mongo的or、in、notIn基本用法
db.abc.find(
{
$or: [{
type: {
$ne: 1,
$ne: 8
}
}]
}
)
db.abc.find({
id: {'$in' : ["371312", "371327", "371323"]}
})
db.abc.find({
id: {'$nin' : ["371312", "371327", "371323"]}
})
7、mongo的聚合求和总成绩(sum)
//字符串转double类型{$toDouble: '$score'}
db.abc.aggregate([
{ $match : { id: '123'}},
{ $group : { _id : '$id', num_tutorial : {$sum: '$score'} }}
]);
8、mongo String转double,查出有多少条double类型的数据,依次循环修改,建议拆分使用,使用第一条检查数据是否是满足条件的数据,再联合执行
db.abc.find({
"score": {
$type: "string"
}
}).forEach(function(x) {
x.score= parseFloat(x.score); db.abc.save(x)
})
9、mongo 修改某个值为随机数,并且保留两位小数,依次循环修改,建议拆分使用,使用第一条检查数据是否是满足条件的数据,再联合执行
db.abc.find({
'_id': 1
}).forEach(function(item) {
db.abc.update({
_id: item._id
}, {
$set: {
'score': (Math.random() * (30 - 25) + 25).toFixed(2)
}
})
})
10、mongo 聚合显示某些字段显示别名
db.abc.aggregate(
{ $project : {
name: '$loginName'
}}
);
11、mongo 联表查询,abc和efg通过id联合查询
db.abc.aggregate(
[
{
$lookup:
{
from: "efg",
localField: "id",
foreignField: "id",
as: "inventory_docs"
}
},
{
$match: {
age:{
'$gt':18,
'$lt':30
}
}
}
]
);
12、mongo满足某个字段长度大于指定值,两种方法
db.abc.find({
name: {
$type:2, // 字段类型为2,表示有此字段,或者用: $exists: true
$regex: /^.{20,}$/ // 长度大于20
}
})
db.abc.find({
name: {
$exists: true
},
$where: "(this.name.length > 21)"
})
13、mongo删除单条
db.abc.remove({"_id" : item._id})
删除满足条件的
db.abc.deleteMany({
type: 2
})
14、mongodb字符串比较,成绩小于60
db.abc.deleteMany({
$where: "this.score<60"
})
15、mongo判断某个值不等于null
db.abc.find(
{
"name": {
"$ne": null
}
}
)
16、mongo判断某个值不包含逗号
db.abc.find(
{
name: /^[^, ] * $/
}
)
17、mongo转义符
小于 < ($lt), 小于等于 <= ($lte), 大于 > ($gt), 大于等于 >= ( $gte )
18、删除尾部空格
db.abc.find(
{
"_id": 402145,
}
).forEach(function(item) {
db.operationBlockDO.update(
{
"_id": item._id
},
{
"$set": {
"age": item.age.trim()
}
}
);
});