欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MongoDB 概念理解、MongoDB shell 连接 Mongodb 服务

程序员文章站 2021-11-30 12:06:44
mongodb 概念理解 mongodb shell 连接 mongodb 服务 标准 uri 连接语法: mongodb://[username:password@]host1[:port1...

mongodb 概念理解

MongoDB 概念理解、MongoDB shell 连接 Mongodb 服务

mongodb shell 连接 mongodb 服务

标准 uri 连接语法:

mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostn[:portn]]][/[database][?options]]

mongodb:// 这是固定的格式,必须要指定。
username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库
host1 必须的指定至少一个host, host1 是这个uri唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。
portx 可选的指定端口,如果不填,默认为27017
/database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开 test 数据库。
?options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开

“show dbs” 命令可以显示所有数据的列表。

执行 “db” 命令可以显示当前数据库对象或集合。

运行”use”命令,可以连接到一个指定的数据库或者创建数据库:

use database_name

刚创建的数据库 并不在数据库的列表(show dbs)中, 要显示它,我们需要向数据库插入一些数据。

mongodb 删除数据库的语法格式如下:

db.dropdatabase()

删除集合

集合删除语法格式如下:
db.collection.drop()

mongodb 使用 insert() 或 save() 方法向集合中插入文档,语法如下:

db.collection_name.insert(document)

文档document的数据结构和json基本一样。

所有存储在集合中的数据都是bson格式。

bson是一种类json的一种二进制形式的存储格式,简称binary json。

查看已插入文档:

db.col.find()
#如果想要以读友好的格式显示则格式如下:
db.col.find().pretty()

mongodb 更新文档

mongodb 使用 update() 和 save() 方法来更新集合中的文档。接下来让我们详细来看下两个函数的应用及其区别。

update() 方法
update() 方法用于更新已存在的文档。语法格式如下:

    db.collection.update(
       ,
       ,
       {
         upsert: ,
         multi: ,
         writeconcern: 
       }
    )

参数说明:

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

save() 方法

save() 方法通过传入的文档来替换已有文档。语法格式如下:

db.collection.save(
   ,
   {
     writeconcern: 
   }
)

参数说明:

document : 文档数据。
writeconcern :可选,抛出异常的级别。

官方推荐使用 deleteone() 和 deletemany() 方法。

如删除集合下全部文档:

db.collection_name.deletemany({})

删除 status 等于 a 的全部文档:

db.collection_name.deletemany({ status : "a" })

删除 status 等于 d 的一个文档:

db.collection_name.deleteone( { status: "d" } )