MongoDB基础语法

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()
                
            }
        }
    );
});

你可能感兴趣的:(mongodb,数据库)