mongodb数据库操作语句合集

328 阅读1分钟

mongodb数据库常用的操作查询语句

基础查询

查询表所有数据
db.getCollection('table').find({})

查询表数据总数
db.getCollection('table').find({}).count()

查询5条以后的数据
db.getCollection('table').find({}).skip(5)

查询前5条的数据
db.getCollection('table').find({}).limit(5)

查询5-10间的数据,用于分页查询
db.getCollection('table').find({}).skip(5).limit(10)

查询数据中包括age=32或者name=张三的数据
db.getCollection('table').find({$or:[{age:32},{name: '张三'}]})

根据普通条件查询
db.getCollection('table').find({name: "zhangli", age: 22})

按照年龄正序和倒序排列
db.getCollection('table').find().sort({age: 1}).sort({age: -1})

按照年龄大于20岁小于50
db.getCollection('table').find({age: {$gt: 20, $lt: 50}})

按照年龄大于等于20岁小于等于50
db.getCollection('table').find({age: {$gte: 20, $lte: 50}})

查询表所有数据,只返回name和age字段
db.getCollection('table').find({},{name:1, age: 1})

查询字段中包含某个字符,用于模糊查询
db.getCollection('table').find({name: /张/})

查询字段中以张开头
db.getCollection('table').find({name: /^张/})

查询字段中以张结尾
db.getCollection('table').find({name: /张$/})

统计查询

数据分组求总数

查询数据表中userName相同的值出现的次数
db.getCollection('table').aggregate([{$group: {_id: "$userName", count: {$sum: 1}}}])
结果:[{_id: '张三', count: 4}, { _id: '李四', count: 5}]

数据分组求总和

按照userName字段进行分组并统计其花销的总和
db.getCollection('table').aggregate([{$group: {_id: "$userName", money: { $sum: '$money' }}}])

数据分组添并加对应项

按照userName字段进行分组并把其对应的数据统一添加到数组
db.getCollection('table').aggregate([{$group: {_id: "$userName", userList: { $push: {userCode: '$userCode', age: '$age'} }}}])

数据求和

查询数据表中name为hi的数据money字段值的总和大于200的记录
db.getCollection('table').aggregate([{$match: {name: 'hi'}}, {$group: {_id: null, total: { $sum: "$money" }}}])

查询总数

查询数据表中数据总条数
db.getCollection('table').aggregate([{$group: { _id: null, count: { $sum: 1 } }} ])

数据添加

插入数据
db.getCollection('table').insertOne({name:'张三', age: 30, phone: 13888888888, sex: '男'})

插入多条数据
db.getCollection('table').insertMany([{},{}])

数据更新

更新userCode为tony的数据-单条更新
db.getCollection('table').updateOne({ userCode: 'tony' }, { $set: { name: '测试' } }

更新sex为女的数据-多条更新
db.getCollection('table').updateMany({ sex: '女' }, { $set: { status: 1 })

数据删除

删除单条数据
db.getCollection('table').deleteOne({id: 1})

删除多条数据
db.getCollection('table').deleteMany({id: {$in: [1,2]}})