建立mongo连接的必要前提:host、port、username、password、authdbname、collection
查用命令行操作
showdbs:显示数据库列表
showcollections:显示当前数据库中的集合(类似关系数据库中的表)
showusers:显示用户
db.createCollection(name) : 创建collection
增
db.collection.insert({key1:val1,key2:val2,key3:val3,...})
3.2版本之后:
db.collection.insertOne([{},{},...])
db.collection.insertMany([{},{},...])
删
删库:db.dropDatabase()
删collection:db.collection.drop()
删记录:
db.collection.remove({key1:val1}) : remove() 方法 并不会真正释放空间,需要继续执行 db.repairDatabase() 来回收磁盘空间db.collection.deleteOne({key1:val1})db.collection.deleteMany({key1:val1}) (不带查询条件:类似truncate table的操作)
改
更新满足条件key1:val1的记录,通过{key1:val2}进行替换, upsert标志位默认false,表示如果记录不存在则插入; multi标志:默认为false,表示一次操作满足条件的多行
更新指定一条记录:db.collection.update({key1:val1},{$set:{key1:val2}})
更新指定一条记录:db.collection.update({key1:val1},{$set:{key1:val2}},false,true)
如果不存在则插入,存在则更新一条记录: db.collection.update({key1:val1},{$set:{key1:val2}},true,false)
如果不存在则插入,存在则更新多条记录: db.collection.update({key1:val1},{$set:{key1:val2}},true,true)
查
查询所有document
db.collectionXXX.find().pretty()
查询符合指定条件的所有document:
db.collectionXXX.find({key1:val1,key2:val2}).pretty()
查询符合指定条件and的所有document:
db.collectionXXX.find({key1:val1},{key2:val2},{key3:val3}).pretty()
查询符合指定条件or的所有document
db.collectionXXX.find({$or:[{key1:val1},{key2:val2},{key3:val3}]}).pretty()
查询符合指定条件包含and及or的所有document
db.collectionXXX.find({{key1:val1},$or:[{key2:val2},{key3:val3}]}).pretty() key1=val1and(key2=val2orkey3=val3)
模糊查询
查询title包含"教"字的文档:db.col.find({title:/教/})
查询title字段以"教"字开头的文档:db.col.find({title:/^教/})
查询title字段以"教"字结尾的文档:db.col.find({title:/教$/})
查询
db.collectionXXX.find()..pretty() 具体哪个collectionXXX需要修改
其他操作
skip(n), limilt(n), sort({key:1})三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit() , 针对sort: 1 表示升序 -1 表示降序
索引
index:db.collection.createIndex({})