mongodb安装及常用命令

时间:2022-12-10 09:00:43

mongodb入门学习:http://www.runoob.com/mongodb/nosql.html



一:下载

http://dl.mongodb.org/dl/win32/x86_64

二:解压到根目录下,文件夹名为mongodb,进入mongodb创建data和log文件夹,在log中创建mongodb.log文件(data存放数据,mongodb.log记录日志)。

mongodb安装及常用命令


三:构建mongod服务

运行cmd.exe (管理员身份)
进入到 e:\mongo\bin 目录下
输入 mongod --dbpath “E:\mongodb\data" --logpath " E:\mongodb\log\mongodb.log" --install --serviceName “mongodb“

启动mongodb:

:net  start  mongodb

进入mongodb:

:mongo  

建立数据库:

use mydb 


四:简单命令:

插入:

#往mydb库的mydb.user集合中插入一条记录(集合相当于表,记录相当于行(row))

db.mydb.user.insert({name:"zhangsan"})   <=>   db.mydb.user.save({name:"zhangsan"})     

 注意:db.xxx.insert()中,集合就是xxx,如上例中集合就是mydb.user,不要认为是user,没有user这个集合,因为在mydb库中操作的,所以mydb.user集合就属于mydb库,专门提出来就是因为我之前理解错了,可以使用show tables命令查看当前库中的所有集合。

db.mydb.user.insert({_id:”s001”,name:”jack”,password:223})    #如果s001存在会报错,,save则不会

db.mydb.user.save({})


查询:

db.mydb.user.find()     <=>     db.mydb.user.find({})

db.mydb.user.findone()

db.mydb.user.find({{name:”admin”},{password:123}})   第一个参数是查询的条件,,第二个参数是返回的字段


删除:

按条件:

db.mydb.user.remove({name:"zhangsan"})

删除mydb.user集合(相当于table):

db.mydb.user.drop()

删除mydb数据库(前提已进入要删除的库):

db.dropDatabase()


修改:

文档替换:update

例如:
符合{name:”test1”}  的记录修改为  {name:”test1”,age:20}
 执行操作:
db.mydb.user.update({name:”test1”} , {name:”test1”,age:20})
疑问: 如果结构比较大(键值比较多),上述写法是不是显得非常不科学?

优化:

使用findOne()函数:
   user=db.mydb.user.findOne({name:”test1”})
   user.name=“test1” 
   user.age=20
   db.mydb.user.update({name:”test1”},user)

但是{name:"test1"}有多条呢?

优化:增加条件精确匹配

{_id:”o34x…”,name:”test1”,age:30} 、{_id:”x876…”,name:”test1”,age:20}
如:年龄20的test1过生日
   user=db.mydb.user.findOne({name:”test1”,age:20})
   user.age++
   db.mydb.user.update({_id:user._id},user) 


修改器:$inc,,$set,,$unset

$inc:用来对已存在的键做增减,该键的值须为数字

db.mydb.user.update({name:"zhangsan"},{$inc:{age:1}}     #对name为张三的记录,把age键的值+1

$set:用来修改指定键值,键不存在会创建

db.mydb.user.update({name:"zhangsan"},{$set:{hobby:"swimming"}} #对name为张三的记录,把hobby改为游泳

可以把键设置多个值

db.mydb.user.update({name:"zhangsan"},{$set:{hobby:["swimming","singing"]}} #对name为张三的记录,把hobby改为游泳和唱歌

可以内嵌文档,使用 “.” 的方式

db.mydb.user.update({name:"zhangsan"},{$set:{"posture.height":"175cm"}}    #对name为张三的记录,把posture中的height改为175cm  ,记得用""包裹键

可以往posture中再增加一个age属性,这样就会有height和age两个了

db.mydb.user.update({name:"zhangsan"},{$set:{"posture.age":20}}

$unset:用来删除指定键,就是将键值设为1或-1或0

db.mydb.user.update({name:"zhangsan"},{$uset:{hobby:1}} #对name为张三的记录,删除hobby键