ITPub博客

首页 > 数据库 > NoSQL > 一些MongoDB基本命令及使用方法

一些MongoDB基本命令及使用方法

NoSQL 作者:18141908802 时间:2021-02-26 15:22:36 0 删除 编辑


今天我们来看一下MongoDB的基本指令,便于以后可以快速地使用
基本概念
数据库(database)
集合(collection)
文档(document)
在MongoDB中,数据库和集合都不需要手动创建,当我们创建文档时,如果文档所在的集合或数据库不存在会自动创建数据库和集合
当我们向集合中插入文档时,如果没有给文档指定_id属性,则数据库会自动为文档添加_id,该属性用来作为文档的唯一标识

  1. 显示当前的所有数据库
    show dbs 或 show databases1
  2. 进入到指定的数据库中
    use 数据库名1
  3. 查看当前所处数据库
    db1
  4. 显示数据库中所有的集合
    show collections1
  5. 向数据库中插入文档,insert可以插入单个或多个,insertOne只能插入单个,insertMany可以插入多个
    db.<collection>.insert(doc) 例子:db.stus.insert({name:"孙悟空",age:18,gender:"男"})db.<collection>.insertOne(doc) 例子:db.stus.insertOne({name:"猪八戒",age:28,gender:"男"});db.<collection>.insertMany([]) 例子:db.stus.insertMany([{name:"沙和尚",age:38,gender:"男"},{name:"白骨精",age:16,gender:"女"},{name:"蜘蛛精",age:14,gender:"女"}]);123
  6. 查看当前集合的所有文档
    db.<collection>.find() 例子:db.stus.find()1
  7. 生成一个UUID
    ObjectId()1
  8. 根据条件查询文档,括号里面可以写一个键值对对象,代表查询的条件
    db.<collection>.find({})1
  9. 查询集合中符合条件的第一个文档
    db.<collection>.findOne({})1
  10. 查询文档的个数
    db.<collection>.find().count()1
  11. 修改文档,以下update用法会完全替换文档,慎用,如果匹配到多个,默认只会修改第一个,如果想修改多个,则在后面加上配置{multi:true}
    db.<collection>.update({查询条件键值对对象},{替换键值对对象})  例子:db.stus.update({name:"沙和尚"},{age:18});1
  12. 修改文档,指定属性
    db.<collection>.update({查询条件键值对对象},{$set:{指定替换的键值对对象}})1
  13. 修改文档,删除属性
    db.<collection>.update({查询条件键值对对象},{$unset:{删除的键值对对象}})1
  14. 只能修改一个文档,如果匹配到多个,默认只会修改第一个
    db.<collection>.updateOne({查询条件键值对对象},{$set:{指定替换的键值对对象}})1
  15. 修改多个文档
    db.<collection>.updateMany({查询条件键值对对象},{$set:{指定替换的键值对对象}})1
  16. 替换文档,如果匹配到多个,默认只会替换第一个
    db.<collection>.replaceOne({查询条件键值对对象},{替换键值对对象})1
  17. 删除匹配到的文档
    db.<collection>.remove({查询条件键值对对象})db.<collection>.delectMany({查询条件键值对对象})12
  18. 删除匹配到的第一个文档
    db.<collection>.remove({查询条件键值对对象},true)db.<collection>.delectOne({查询条件键值对对象})12
  19. 清空集合,如果数据库中没集合了,那么数据库也会消失
    db.<collection>.remove({}) 性能较差,一个一个删除文档 db.<collection>.drop() 直接销毁集合1
//切换数据库
use my_test//向users集合中插入一个用户名为孙悟空的文档
db.users.insert({
    username:"sunwukong"});//显示当前数据库
show dbs//查询users集合内容
db.users.find();//向users集合插入一个用户名为猪八戒的文档
db.users.insert({
    username:"zhubajie"});//查询users集合中文档的数量
db.users.find().count();//查询users集合中用户名为孙悟空的文档
db.users.find({username:"sunwukong"});//在users集合用户名为孙悟空的文档中添加地址为花果山
db.users.update({username:"sunwukong"},{$set:{address:"huaguoshan"}});//将users集合用户名为猪八戒的文档的用户名替换为唐僧
db.users.replaceOne({username:"zhubajie"},{username:"tangseng"});//将users集合用户名为孙悟空的文档中的地址移除
db.users.update({username:"sunwukong"},{$unset:{address:1}});//在users集合用户名为孙悟空的文档增加爱好属性,爱好属性中又有城市和电影属性
db.users.update({username:"sunwukong"},{$set:{hobby:{cities:["beijing","shanghai","shenzhen"],movies:["sanguo","hero"]}}});//在users集合用户名为唐僧的文档增加爱好属性,爱好属性中又有电影属性
db.users.update({username:"tangseng"},{$set:{hobby:{movies:["A Chinese Odyssey","King of comedy"]}}});//查询users集合中属性hobby中属性电影值为hero的文档
db.users.find({'hobby.movies':"hero"});//在users集合中用户名为唐僧的文档中的属性hobby中属性电影增加Interstellar值,允许值重复
db.users.update({username:"tangseng"},{$push:{"hobby.movies":"Interstellar"}});//在users集合中用户名为唐僧的文档中的属性hobby中属性电影增加Interstellar值,不允许值重复
db.users.update({username:"tangseng"},{$addToSet:{"hobby.movies":"Interstellar"}});//在users集合中删除属性hobby中属性城市为北京的文档
db.users.remove({"hobby.cities":"beijing"});//删除users集合
db.users.remove({});db.users.drop();//向numbers中插入2000条数据//效率慢for(var i=1; i<=2000; i++){
    db.numbers.insert({num:i});}db.numbers.find();use my_test
db.numbers.remove({});//效率快var arr = [];for(var i=1; i<2000; i++){
    arr.push({num:i});}db.numbers.insert(arr);//查询numbers中num为500的文档
db.numbers.find({num:500});//查询numbers中num大于500的文档
db.numbers.find({num:{$gt:500}});db.numbers.find({num:{$eq:500}});//查询numbers中num小于30的文档
db.numbers.find({num:{$lt:30}});//查询numbers中num大于40小于50的文档
db.numbers.find({num:{$gt:40,$lt:50}});//查询numbers中num大于1995的文档
db.numbers.find({num:{$gt:1995}});//查看numbers集合中前10条数据
db.numbers.find({num:{$lte:10}});//limit()设置显示数据的上限
db.numbers.find().limit(10);//跳过10条取10条skip((页码-1)*每页显示的条数).limit(每页显示的条数)db.numbers.find().skip(10).limit(10);//跳过20条取10条
db.numbers.find().skip(20).limit(10);//查询工资小于2000的员工
db.emp.find({sal:{$lt:2000}});//查询工资在1000-2000之间的员工
db.emp.find({sal:{$lt:2000,$gt:1000}});//查询工资小于1000或大于2500的员工
db.emp.find({$or:[{sal:{$lt:1000}},{sal:{$gt:2500}}]});//查询财务部的所有员工var depno = db.dept.findOne({dname:"财务部"}).deptno;db.emp.find({deptno:depno});//为所有薪资低于1000的员工增加工资400元
db.emp.updateMany({sal:{$lte:1000}},{$inc:{sal:400}});//查询文档时,默认情况是按照_id的值进行排序(升序)//sort()可以用来指定文档的排序的规则,sort()需要传递一个对象来指定排序规则,1表示升序 -1表示降序,按顺序排序,相同则依次按之后的字段进行排序
db.emp.find({}).sort({sal:1,empno:-1});//在查询时,可以在第二个参数的位置来设置查询结果的投影,1显示0隐藏
db.emp.find({},{ename:1,_id:0,sal:1});

转载连接 http://blog.itpub.net/69993640/viewspace-2759292/

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31429259/viewspace-2759709/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2017-01-16

  • 博文量
    117
  • 访问量
    66399