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