MongoDB操作大全,你想要的的这儿都有

MongoDB操作语句

db.version()
查看当前所在的数据库
db
查看当前数据库连接的地址
db.getMongo()
查看所有数据库
show databases # 没有集合的数据库不会显示
切换数据库
switched to db class # 没有则创建(数据库隐式创建)
创建集合
db.createCollection('集合名')
查看集合
show collections/show tables
插入文档
db.集合名.insert({key:value})/db.集合名.save({key:value})
多条插入
db.集合名.insert([{key1:value1},{key2:value2}]) # 如果插入数据的集合不存在,会先创建再插入(集合的隐式创建)
查询数据
db.表名.find() 
查询当前数据库的状态
db.stats()
拷贝数据
db.copyDatabase('数据库1','数据库2','数据库2的地址')
删除集合
db.集合名.drop()
删除当前所在的数据库
db.dropDatabase()
更新数据/修改数据
db.集合名.update('query','update',[upsert,multi])
query条件:(小于:$lt,大于:$gt,等于:$eq,不等于:$ne,大于等于:$gte,小于等于:$lte)
update:'更新的数据键':'更新后到的数据'
指定修改
db.'集合名'.update({name:'张三'},{$set:{age:17}})
upsert:可选参数,是一个布尔值.作用:如果不存在update记录,是否插入新的数据
multi:是否将查询到的所有数据更新,true代表全部更新,false代表只更新一条.
删除,query是必选项
remove(query[,justone])
删除全部
db.集合名.remove({})
删除指定数据
db.集合名.remove(query,true)
根据条件查询文档
db.find([query,是否显示此字段{k:1/0}])
显示为json
db.find([query,{k:1}]).pretty()
只查一条
db.findOne(query)
去重
Mysql:select distinct 字段 from表
MongoDB:db.集合名.distinct(k)
逻辑查询
and
Mysql:select * from xx where xx =xx and xx =xx
MongoDB:db.集合名,find({v1:k1,v2:k2})
or
db.集合名.find({'$or':[{k1:v1},{k2:v2}]})
限制查询
db.集合名.find().limit(n) # 查看前几条数据
db.集合名.find().skip(n).limit(m) # 跳过n跳后查m条
模糊查询
db.集合名.find({key:/模糊词/})
排序
db.集合名.find().sort({key:value})# 正序1,逆序-1
统计命令
db.集合名.find().count()
游标
循环插入多条数据
for (var i = 1 ;i <= n;i++){
    db.集合名.insert([{},{}])
}
MongoDB中的游标与Mysql中的游标非常类似,可以通过对游标进行一系列的设置来控制游标查询数据,游标不是查询结果,而是查询的一个返回资源或者接口,通过这个接口可以逐条读取数据,和python中的 生成器类似,游标会消耗内存资源,在使用后应该尽快释放掉,有标被定以后没有变量接收就是一次查询结果.默认一次返回20个数据,可以通过DBQuery.shellBatchSize= n 来设置一次显示的数据量.
游标的使用
先声明游标
var 变量名 = db.'集合'.find()
用 next()移动游标获取文档
查看文档
print(游标.next()) # 返回数据类型()
printjson(游标.next()) # 返回文档内容
判断是否还有数据
游标.hasNext()
游标的生命周期
游标迭代到最后一条后自动关闭

你可能感兴趣的:(mongodb)