MongoDb使用到的一些命令

# 显示所有的库
show dbs
# 显示所有的表
show tables
show collections

# 删除一张表, 下面表示删除user表
db.user.drop()

# 删除数据库、需要先切换到删除 的数据库
use testdb  #切换到testdb
db.dropDatabase()


# 数据的插入
# 语法:db.collection_name.insert(document)
# 如下:下面两个的效果是一样的
db.user.insert({id:1, username: 'woodie', age: 20})
db.user.save({id:1, username: 'woodie', age: 20})


# 数据更新
#语法
db.collection.update(
    <query>,
    <update>,
    [
        upsert: <boolean>,
        multi: <boolean>,
        writeConcern: <document>
    ]
)
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如 inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是
false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条
记录全部更新。
writeConcern :可选,抛出异常的级别。

eg:
db.house.update({hid:1}, {$set:{title: 'abcd'}})
#如果写成下面的,会删除其它的字段
db.house.update({hid:1}, {title: 'abcd'})
#如果更新不存在的字段则会添加该字段


#删除数据
#语法
db.collection.remove(
    <query>,
    {
        justOne:<boolean>,
        writeConcern: <document>
    }
)

#参数说明
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删
除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别

#eg:
db.house.remove({title: 'abcd'})
# 如果 不传入参数则表示删除所有的数据
db.house.remove({})

# 官方推荐删除的方式 
# 删除匹配到的第一条数据
db.house.delectOne({title:'abcd'})
# 删除匹配到的所有数据
db.house.delectmany({title:'abcd'})


# 查询数据
# 在末尾添加.pretty()表示将查询到匆数据 进行美化
db.user.find() #查询全部数据 
db.user.find({},{id:1,username:1}) #只查询id与username字段 
db.user.find().count() #查询数据条数 
db.user.find({id:1}) #查询id为1的数据 
db.user.find({age:{$lte:21}}) #查询小于等于21的数据 
db.user.find({age:{$lte:21}, id:{$gte:2}}) #and查询,age小于等于21并且id大于等于2 
db.user.find({$or:[{id:1},{id:2}]}) #查询id=1 or id=2 

#分页查询:Skip()跳过几条,limit()查询条数 
db.user.find().limit(2).skip(1) #跳过1条数据,查询2条数据 
db.user.find().sort({id:-1}) #按照age倒序排序,-1为倒序,1为正序

# 查看索引
db.house.getIndexes()

#创建索引
db.house.createIndex({'name':1})
#删除索引, 根据查看到索引信息中的name字段进行删除
db.house.dropIndex("name_1")

# 创建联合索引, 下面代码的意思是给name创建正序的索引,给id创建倒序的索引
db.house.createIndex({'name':1, 'id': -1})

#插入1000条数据 
for(var i=1;i<1000;i++)db.user.insert({id:100+i,username:'name_'+i,age:10+i})

# 查看执行计划
db.user.find({id:181}).explain()
#查询方式,常见的有COLLSCAN/全表扫描、IXSCAN/索引扫描、 FETCH/根据索引去检索文档、SHARD_MERGE/合并分片结果、IDHACK/针对_id进行查询

猜你喜欢

转载自blog.csdn.net/qq_26896085/article/details/104926710
今日推荐