MongoD原生命令使用

MongoDB原生语句的使用

  1. 查看当前数据库的版本号

    db.version()

    MongoDB Enterprise > db.version()
    4.4.2
    
  2. 查看当前所在数据库

    db

    MongoDB Enterprise > db
    test
    
  3. 查看当前数据库连接的地址

    db.getMongo()

    MongoDB Enterprise > db.getMongo()
    connection to 127.0.0.1:27017
    
  4. 查看所有数据库

    show databases/show dbs,数据库中如果没有数据是不会显示的

    MongoDB Enterprise > show databases
    admin       0.000GB
    config      0.000GB
    local       0.000GB
    
  5. 切换数据库

    use 数据库名称,如果没有这个数据库,会先创建再切入

    MongoDB Enterprise > use first_text
    switched to db first_text
    
  6. 创建集合

    db.createCollection(集合名)

    MongoDB Enterprise > db.createCollection("students")
    { "ok" : 1 }
    
  7. 查看集合

    show collections/show tables

    MongoDB Enterprise > show collections
    students
    
  8. 插入文档

    db.集合名.insert({“key”:“value”})

    db.集合名.save({“key”:“value”})

    注:如果想要插入多条数据,可以将多个对象放在一个数组中

    db.集合名.insert([{},{},{}])

    注:如果插入的数据的集合不存在,会先创建再插入

    # 插入5个学生信息,包括姓名,年龄,性别
    MongoDB Enterprise > db.students.insert({"name":"zhangsan","age":23,"gender":"男"})
    WriteResult({ "nInserted" : 1 })
    
    MongoDB Enterprise > db.students.insert({"name":"lisi","age":18,"gender":"男"})
    WriteResult({ "nInserted" : 1 })
    
    MongoDB Enterprise > db.students.insert({"name":"wangwu","age":30,"gender":"男"})
    WriteResult({ "nInserted" : 1 })
    
    MongoDB Enterprise > db.students.insert({"name":"xiaohong","age":26,"gender":"女"})
    WriteResult({ "nInserted" : 1 })
    
    MongoDB Enterprise > db.students.insert({"name":"lihua","age":16,"gender":"女"})
    WriteResult({ "nInserted" : 1 })
    
  9. 查询数据

    db.集合名.find()

    MongoDB Enterprise > db.students.find()
    { "_id" : ObjectId("5fc7891987ee1122be308b90"), "name" : "zhangsan", "age" : 23, "gender" : "男" }
    { "_id" : ObjectId("5fc7899287ee1122be308b91"), "name" : "lisi", "age" : 18, "gender" : "男" }
    { "_id" : ObjectId("5fc789b487ee1122be308b92"), "name" : "wangwu", "age" : 30, "gender" : "男" }
    { "_id" : ObjectId("5fc789c987ee1122be308b93"), "name" : "xiaohong", "age" : 26, "gender" : "女" }
    { "_id" : ObjectId("5fc789de87ee1122be308b94"), "name" : "lihua", "age" : 16, "gender" : "女" }
    MongoDB Enterprise > 
    
    
  10. 查询当前数据库状态

    db.stats()

    MongoDB Enterprise > db.stats()
    {
    	"db" : "first_text",
    	"collections" : 2,
    	"views" : 0,
    	"objects" : 14,
    	"avgObjSize" : 65.28571428571429,
    	"dataSize" : 914,
    	"storageSize" : 73728,
    	"indexes" : 2,
    	"indexSize" : 73728,
    	"totalSize" : 147456,
    	"scaleFactor" : 1,
    	"fsUsedSize" : 24420130816,
    	"fsTotalSize" : 41474588672,
    	"ok" : 1
    }
    
  11. 数据库备份

    db.copyDatabase(“数据库1”,“数据库2”,“地址”)

    注:适合4.0及以下版本

    db.copyDatabase("students","students_copy","127.0.0.1")
    

    在最新版本中,也就是4.2版本以上,mongodb官方取消了copyDatabase和clone命令,取而代之的是mongodump和mongorestore

    mongodump -h dbhost -d dbname -o dbdirectory

    -h:服务器地址

    -d:需要备份的数据库

    -o:备份数据库要保存的路径

  12. 删除集合

    db.集合名.drop()

    MongoDB Enterprise > db.practice.drop()
    true
    
  13. 删除当前所在的数据库

    db.dropDatabase()

    MongoDB Enterprise > db.createCollection("del_text")
    { "ok" : 1 }
    MongoDB Enterprise > show databases
    admin       0.000GB
    config      0.000GB
    first_text  0.000GB
    local       0.000GB
    MongoDB Enterprise > use del_text
    switched to db del_text
    MongoDB Enterprise > db.dropDatabase()
    { "ok" : 1 }
    
  14. 更新数据或修改数据

    db.集合名.update(query,update[,upsert,multi])

    query:条件(小于:“ l t " , 大 于 : " lt",大于:" lt":"gt”,等于:“ e q " , 不 等 于 : " eq",不等于:" eq":"ne”,大于等于:“ g t e " , 小 于 等 于 : " gte",小于等于:" gte":"lte”)

    # 将年龄大于等于22岁的学生的性别改为男士
    MongoDB Enterprise > db.students.update({"age":{"$gte":22}},{"gender":"男"})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    
    { "_id" : ObjectId("5fc7891987ee1122be308b90"), "gender" : "男" }
    { "_id" : ObjectId("5fc7899287ee1122be308b91"), "name" : "lisi", "age" : 18, "gender" : "男" }
    { "_id" : ObjectId("5fc789b487ee1122be308b92"), "name" : "wangwu", "age" : 30, "gender" : "男" }
    { "_id" : ObjectId("5fc789c987ee1122be308b93"), "name" : "xiaohong", "age" : 26, "gender" : "女" }
    { "_id" : ObjectId("5fc789de87ee1122be308b94"), "name" : "lihua", "age" : 16, "gender" : "女" }
    
    # 由结果来看,修改了满足条件的第一条数据,而且将满足条件的这条数据整体进行了替换
    

    update:更新后的数据,新数据

    $set:只更新字段

    # 将名字是lisi的学生的年龄改为26
    MongoDB Enterprise > db.students.update({"name":"lisi"},{"$set":{"age":26}})
    
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    
    MongoDB Enterprise > db.students.find()
    { "_id" : ObjectId("5fc7891987ee1122be308b90"), "gender" : "男" }
    { "_id" : ObjectId("5fc7899287ee1122be308b91"), "name" : "lisi", "age" : 26, "gender" : "男" }
    { "_id" : ObjectId("5fc789b487ee1122be308b92"), "name" : "wangwu", "age" : 30, "gender" : "男" }
    { "_id" : ObjectId("5fc789c987ee1122be308b93"), "name" : "xiaohong", "age" : 26, "gender" : "女" }
    { "_id" : ObjectId("5fc789de87ee1122be308b94"), "name" : "lihua", "age" : 16, "gender" : "女" }
    # 加了$set后只修改了某一个字段的值
    

    $inc:增加字段值

    # 将李四年龄加2
    MongoDB Enterprise > db.students.update({"name":"lisi"},{"$inc":{"age":2}})
    
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    
    MongoDB Enterprise > db.students.find()
    { "_id" : ObjectId("5fc7891987ee1122be308b90"), "gender" : "男" }
    { "_id" : ObjectId("5fc7899287ee1122be308b91"), "name" : "lisi", "age" : 28, "gender" : "男" }
    { "_id" : ObjectId("5fc789b487ee1122be308b92"), "name" : "wangwu", "age" : 30, "gender" : "男" }
    { "_id" : ObjectId("5fc789c987ee1122be308b93"), "name" : "xiaohong", "age" : 26, "gender" : "女" }
    { "_id" : ObjectId("5fc789de87ee1122be308b94"), "name" : "lihua", "age" : 16, "gender" : "女" }
    MongoDB Enterprise > 
    
    

    $rename:将一个字段重新命名

    # 将lisi的gender字段改为性别
    MongoDB Enterprise > db.students.update({"name":"lisi"},{"$rename":{"gender":"性别"}})
    
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    
    MongoDB Enterprise > db.students.find()
    { "_id" : ObjectId("5fc7891987ee1122be308b90"), "gender" : "男" }
    { "_id" : ObjectId("5fc7899287ee1122be308b91"), "name" : "lisi", "age" : 28, "性别" : "男" }
    { "_id" : ObjectId("5fc789b487ee1122be308b92"), "name" : "wangwu", "age" : 30, "gender" : "男" }
    { "_id" : ObjectId("5fc789c987ee1122be308b93"), "name" : "xiaohong", "age" : 26, "gender" : "女" }
    { "_id" : ObjectId("5fc789de87ee1122be308b94"), "name" : "lihua", "age" : 16, "gender" : "女" }
    
    

    $unset:删除一个字段,后面的字典需要给一个参数1

    MongoDB Enterprise > db.students.update({"name":"lisi"},{"$unset":{"age":1}})
    
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    
    MongoDB Enterprise > db.students.find()
    { "_id" : ObjectId("5fc7891987ee1122be308b90"), "gender" : "男" }
    { "_id" : ObjectId("5fc7899287ee1122be308b91"), "name" : "lisi", "性别" : "男" }
    { "_id" : ObjectId("5fc789b487ee1122be308b92"), "name" : "wangwu", "age" : 30, "gender" : "男" }
    { "_id" : ObjectId("5fc789c987ee1122be308b93"), "name" : "xiaohong", "age" : 26, "gender" : "女" }
    { "_id" : ObjectId("5fc789de87ee1122be308b94"), "name" : "lihua", "age" : 16, "gender" : "女" }
    

    upsert:可选参数,是一个布尔值。作用:如果不存在update的字段,则插入更新的数据

    # id为0的学生只有gender字段,如果upsert为false,则会提示没有匹配到任何信息,设置为true的时候,则会进行添加
    
    MongoDB Enterprise > db.students.update({"gender":"男"},{"$set":{"age":33}},{"upsert":"true"})
    
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    
    MongoDB Enterprise > db.students.find()
    { "_id" : ObjectId("5fc7891987ee1122be308b90"), "gender" : "男", "age" : 33 }
    { "_id" : ObjectId("5fc7899287ee1122be308b91"), "name" : "lisi", "性别" : "男" }
    { "_id" : ObjectId("5fc789b487ee1122be308b92"), "name" : "wangwu", "age" : 30, "gender" : "男" }
    { "_id" : ObjectId("5fc789c987ee1122be308b93"), "name" : "xiaohong", "age" : 26, "gender" : "女" }
    { "_id" : ObjectId("5fc789de87ee1122be308b94"), "name" : "lihua", "age" : 16, "gender" : "女" }
    
    

    multi:可选参数,是一个布尔值。作用:是否将查询出来的所有符合条件的数据全部更新。true表示全部更新,false表示只更新第一条,默认是false

    # 将年龄小于30岁的学生的年龄全部加2
    MongoDB Enterprise > db.students.update({"age":{"$lt":30}},{"$inc":{"age":2}},{"multi":"true"})
    
    WriteResult({ "nMatched" : 2, "nUpserted" : 0, "nModified" : 2 })
    
    MongoDB Enterprise > db.students.find()
    { "_id" : ObjectId("5fc7891987ee1122be308b90"), "gender" : "男", "age" : 33 }
    { "_id" : ObjectId("5fc7899287ee1122be308b91"), "name" : "lisi", "性别" : "男" }
    { "_id" : ObjectId("5fc789b487ee1122be308b92"), "name" : "wangwu", "age" : 30, "gender" : "男" }
    { "_id" : ObjectId("5fc789c987ee1122be308b93"), "name" : "xiaohong", "age" : 28, "gender" : "女" }
    { "_id" : ObjectId("5fc789de87ee1122be308b94"), "name" : "lihua", "age" : 18, "gender" : "女" }
    
    
  15. 删除文档:

    remove(query[,justOne])

    query:必选项

    justOne:可选参数,代表是否只删除一条数据,是一个布尔值。默认false

    db.集合名.remove(query,true/false) 是否只删除一条数据

    # 删除性别是男的第一个学生,只删除一条数据
    MongoDB Enterprise > db.students.remove({"性别":"男"},true)
    
    WriteResult({ "nRemoved" : 1 })
    
    MongoDB Enterprise > db.students.find()
    { "_id" : ObjectId("5fc7891987ee1122be308b90"), "gender" : "男", "age" : 33 }
    { "_id" : ObjectId("5fc789b487ee1122be308b92"), "name" : "wangwu", "age" : 30, "gender" : "男" }
    { "_id" : ObjectId("5fc789c987ee1122be308b93"), "name" : "xiaohong", "age" : 28, "gender" : "女" }
    { "_id" : ObjectId("5fc789de87ee1122be308b94"), "name" : "lihua", "age" : 18, "gender" : "女" }
    
    

    db.集合名.remove(query) 根据条件删除,删除全部符合条件的数据

    # 删除性别是女的所有学生
    MongoDB Enterprise > db.students.remove({"gender":"女"})
    
    WriteResult({ "nRemoved" : 2 })
    
    MongoDB Enterprise > db.students.find()
    { "_id" : ObjectId("5fc7891987ee1122be308b90"), "gender" : "男", "age" : 33 }
    { "_id" : ObjectId("5fc789b487ee1122be308b92"), "name" : "wangwu", "age" : 30, "gender" : "男" }
    MongoDB Enterprise > 
    
    

    db.集合名.remove({}) 删除全部文档

    # 删除剩下所有的学生数据
    MongoDB Enterprise > db.students.remove({})
    
    WriteResult({ "nRemoved" : 2 })
    
    MongoDB Enterprise > db.students.find()
    MongoDB Enterprise > 
    
  16. 条件查询

    格式:find[query,是否显示此字段]

    重新插入5条数据

MongoDB Enterprise > db.students.insert({"name":"zhangsan","age":20,"gender":"man"})
WriteResult({ "nInserted" : 1 })

MongoDB Enterprise > db.students.insert({"name":"lisi","age":"17","gender":"woman"})
WriteResult({ "nInserted" : 1 })

MongoDB Enterprise > db.students.insert({"name":"wangwu","age":"26","gender":"man"})
WriteResult({ "nInserted" : 1 })

MongoDB Enterprise > db.students.insert({"name":"zhaoliu","age":"20","gender":"man"})
WriteResult({ "nInserted" : 1 })

MongoDB Enterprise > db.students.insert({"name":"lanqi","age":"12","gender":"woman"})
WriteResult({ "nInserted" : 1 })

​ db.集合名.find() 查询所有文档

MongoDB Enterprise > db.practice.find()

{ "_id" : ObjectId("5fc733dd47aeb8635578dcef"), "name" : "wangwu", "age" : "26", "gender" : "mam" }
{ "_id" : ObjectId("5fc7372247aeb8635578dcf3"), "name" : "zhangsan", "age" : "20", "gender" : "man" }
{ "_id" : ObjectId("5fc7381c47aeb8635578dcf4"), "name" : "zhaoliu", "age" : "20", "gender" : "woman" }
{ "_id" : ObjectId("5fc7383347aeb8635578dcf5"), "name" : "lanqi", "age" : "29", "gender" : "man" }

​ db.集合名.find(query) 查询所有符合条件的文档

# 查询年龄大于20的用户
MongoDB Enterprise > db.students.find({"age":{"$gt":"20"}})

{ "_id" : ObjectId("5fc7ac97e605e1d1bd365133"), "name" : "wangwu", "age" : "26", "gender" : "man" }

​ db.集合名.find(query,{k:1(显示)/0(不显示)})

# 查询年龄大于20的用户,并且只显示名字和姓名
MongoDB Enterprise > db.students.find({"age":{"$gt":"20"}},{"name":1,"age":1})

{ "_id" : ObjectId("5fc7ac97e605e1d1bd365133"), "name" : "wangwu", "age" : "26" }

​ 注:find()方法查询时,查询出来的数据是一行显示的,可以使用pretty()将数据格式化输出

MongoDB Enterprise > db.students.find().pretty()

{
	"_id" : ObjectId("5fc7ac84e605e1d1bd365131"),
	"name" : "zhangsan",
	"age" : 20,
	"gender" : "man"
}
{
	"_id" : ObjectId("5fc7ac8ee605e1d1bd365132"),
	"name" : "lisi",
	"age" : "17",
	"gender" : "woman"
}
{
	"_id" : ObjectId("5fc7ac97e605e1d1bd365133"),
	"name" : "wangwu",
	"age" : "26",
	"gender" : "man"
}
{
	"_id" : ObjectId("5fc7aca3e605e1d1bd365134"),
	"name" : "zhaoliu",
	"age" : "20",
	"gender" : "man"
}
{
	"_id" : ObjectId("5fc7acaee605e1d1bd365135"),
	"name" : "lanqi",
	"age" : "12",
	"gender" : "woman"
}

​ db.集合名.findOne([query,是否显示此字段]),只查询一条数据,返回的数据格式是格式化之后的数据,所以,此方法不能使用pretty()

MongoDB Enterprise > db.students.findOne()
{
	"_id" : ObjectId("5fc7ac84e605e1d1bd365131"),
	"name" : "zhangsan",
	"age" : 20,
	"gender" : "man"
}
  1. 查询某一列去重后的数据

    db.集合名.distinct(k)

MongoDB Enterprise > db.students.distinct("age")

[ "12", "17", "20", "26" ]
  1. and的使用,多个条件以逗号分隔

    db.集合名.find({“k1”:“v1”,“k2”:“v2”,…})

MongoDB Enterprise > db.students.find({"age":"20","name":"zhangsan"})

{ "_id" : ObjectId("5fc7ac84e605e1d1bd365131"), "name" : "zhangsan", "age" : "20", "gender" : "man" }

  1. or条件的使用:$or
MongoDB Enterprise > db.students.find({"$or":[{"age":"20"},{"gender":"man"}]})

{ "_id" : ObjectId("5fc7ac84e605e1d1bd365131"), "name" : "zhangsan", "age" : "20", "gender" : "man" }
{ "_id" : ObjectId("5fc7ac97e605e1d1bd365133"), "name" : "wangwu", "age" : "26", "gender" : "man" }
{ "_id" : ObjectId("5fc7aca3e605e1d1bd365134"), "name" : "zhaoliu", "age" : "20", "gender" : "man" }
  1. 限制查询:limit()

    db.集合名.find().limit(n)

# 查询前3条数据
MongoDB Enterprise > db.students.find().limit(3)

{ "_id" : ObjectId("5fc7ac84e605e1d1bd365131"), "name" : "zhangsan", "age" : "20", "gender" : "man" }
{ "_id" : ObjectId("5fc7ac8ee605e1d1bd365132"), "name" : "lisi", "age" : "17", "gender" : "woman" }
{ "_id" : ObjectId("5fc7ac97e605e1d1bd365133"), "name" : "wangwu", "age" : "26", "gender" : "man" }

  1. 略过数据查询:skip()

    db.集合名.find().skip(n)

# 跳过前2条数据,从第3条数据开始查询
MongoDB Enterprise > db.students.find().skip(2)

{ "_id" : ObjectId("5fc7ac97e605e1d1bd365133"), "name" : "wangwu", "age" : "26", "gender" : "man" }
{ "_id" : ObjectId("5fc7aca3e605e1d1bd365134"), "name" : "zhaoliu", "age" : "20", "gender" : "man" }
{ "_id" : ObjectId("5fc7acaee605e1d1bd365135"), "name" : "lanqi", "age" : "12", "gender" : "woman" }

  1. 分页查询

    db.集合名.find().skip(n).limit(m)

# 跳过前两条数据,从第三条数据开始查询,查询2条数据
MongoDB Enterprise > db.students.find().skip(2).limit(2)

{ "_id" : ObjectId("5fc7ac97e605e1d1bd365133"), "name" : "wangwu", "age" : "26", "gender" : "man" }
{ "_id" : ObjectId("5fc7aca3e605e1d1bd365134"), "name" : "zhaoliu", "age" : "20", "gender" : "man" }
  1. 模糊查询

    db.集合名.find(“k”:/xxxx/)

# 查询名字中含有an两个字母的数据
MongoDB Enterprise > db.students.find({"name":/an/})

{ "_id" : ObjectId("5fc7ac84e605e1d1bd365131"), "name" : "zhangsan", "age" : "20", "gender" : "man" }
{ "_id" : ObjectId("5fc7ac97e605e1d1bd365133"), "name" : "wangwu", "age" : "26", "gender" : "man" }
{ "_id" : ObjectId("5fc7acaee605e1d1bd365135"), "name" : "lanqi", "age" : "12", "gender" : "woman" }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值