MongoDB介绍(2)-可视化客户端常见命令CRUD操作

 安装好MongoDB的环境后,访问http://localhost:27017/如果返回 如下一行文字,说明服务已经启动了:

It looks like you are trying to access MongoDB over HTTP on the native driver port.

现在就可以开始学习其中的一些命令进行增删查改操作了,打开ROBO3T客户端,点击左商家的连接图标,连接到本地数据库服务端,也就是 Localhost:27017,连接成功后,选中New Connection 并单击右键 点击 New Shell,即弹出一个新的 shell编辑页面:

 

我们可以新建一个名为’School‘的 Database,命令如下:

   use  School

该命令是用来切换数据库的,会返回 switched to db School   当该数据库不存在,将会自动新建一个。但通过命令 show dbs查看,该数据库并没有被创建,那是因为该创建只是在内存层面,若要物理层面的创建,则需要往里面的Collection 插入一条Document,如下:

  db.student.insert({"sId" : "s001","sName" : "张长林","age" : 19.0,"address" : "shenzhen"})

执行完成后,再执行 db.student.find() 即可看到刚刚插入的数据,如下图操作所示:

 

上面刚刚的动作 创建完了 数据库School,也创建了一个 名为student的Collection,并且插入了一个Document. ,现在我们可以继续进行其他操作。

首先,进行

连接操作:

var conn=new Mongo("localhost:27017")
var db=conn.getDB('School')
//或者
var db=connect('localhost:27017/School')
    即连接到了目标数据库School,然后我们可以进行 增删查改操作了,例如查询命令:

db.student.find({})即查询当前数据库下的student集合的所有Document

为了后续操作,可以先插入几条数据:

插入数据:

db.student.insert({'sId':'s008','sName':'','age':21,'address':'huanggang'});
db.student.insert({'sId':'s003','sName':'李建国','age':20,'address':'changsha'})
db.student.insert({'sId':'s004','sName':'南方','age':20,'address':'guangzhou'})
db.student.insert({'sId':'s005','sName':'刘今天','age':21,'address':'xiamen'})
db.student.insert({'sId':'s006','sName':'huning','age':21,'address':'huanggang'})

一次插入多条

db.inventory.insertMany([
   { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
   { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "A" },
   { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
   { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
   { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" }
]);

//往另一个collection 插入 数据
db.className.insert({id:'c009',name:'zyq',location:'east',count:49})

 修改数据(更新值):

  db.School.update({'name':'张小曼'},{'$set':{'name':'李梧桐'}},upsert=true,multi=false)

update第一个参数 为查询条件相当于where,$set 后面的为需要修改的字段和值,upsert参数为Bool,指示若要修改的值不存在是,进行插入与否,multi表示是否进行多条批量修改。

执行下列命令进行查询,检查是否数据已更新。

db.getCollection('student').find({'name':'liwutong})  或者  db.student.find({name:'liwutong'})

修改数据 (删除Document 中的指定字段)

    //删除$unset 后的字段
       db.className.update({count:49.0},{$unset:{name:'zhangwuj',teacher:''}},upsert=true,multi=false)

   在上面的语句中 ,count=49的document 中,$unset后面的name 和teacher 字段将被去掉了。

   举例说明:

    原document:  {id:'s002',name:'张三',age:28,teacher:'wu老师', address:'shenzhen'}

  更新后的Document : {id:'s002',age:28,address:'shenzhen'}

删除数据:

//删除当前数据库下className的符合条件的第一条,若没有条件,则直接删除第一条
  db.className.deleteOne({count:60.0,location:'west'},multi=false)

//删除 如果没有条件,则删除所有的Documents
  db.className.remove({count:60})

//drop掉整个collection --- student

  db.student.drop();

查询操作:

    同关系型数据库一样,Mongodb中的查询非常丰富,先就不分查询语句解释如下:

//查询 sid=s002的document ,并限定sid,age,sname,_id四个属性

db.student.find({sId:'s002'}},{sId:1,age:-1,sName:-1,_id:1}) 

//查询 sid ! =s002 的document的 sId,,age:,,sName:,,_id:,4个字段,$ne = not equal
db.student.find({sId:{$ne:'s002'}},{sId:1,age:-1,sName:-1,_id:1})
//或者条件,查询sid=s002 or  sid =s003的值
db.student.find({$or:[{sId:'s002'},{sId:'s003'}]})
//>条件查询 年龄 >21的数据 ,gt=greater
db.student.find({age:{$gt:21}})

//>条件查询 年龄 >=21的数据 ,gte=greater equal
db.student.find({age:{$gte:21}})

//<条件查询 年龄<21的数据,lte=less equal
db.student.find({age:{$lt:21}})

//<条件查询 年龄<=21的数据,lte=less equal
db.student.find({age:{$lte:21}})

// like 使用正则表达式匹配  类似 like  %天%
db.student.find({sName:/天/})

//以天开头 

db.student.find({sName:/^天/})  

//以天结尾 

db.student.find({sName:/天$/})  


// orderby 升序:.sort({_id:1}) 降序:.sort({_id:-1})
db.student.find({sName:/天/}).sort({_id:1})
//count(*),查询总数量
db.student.count()
// 符合条件的Count
db.student.count({age:{$gt:20}})
//去重
db.student.distinct('age').find()
//寻找第一条
db.student.findOne()==db.student.find().limit(1);
//查询前2条
db.student.find().limit(2);

 

执行外部js 文件

 load(js路径)

以上为常见的命令 更多的命令通过 db.help() 查看,或者 访问 mongodb官方api文档查看 地址:https://docs.mongodb.com/manual/crud/

 

posted on 2019-05-06 02:42  桐舟共济  阅读(341)  评论(0编辑  收藏  举报

导航