MongoDB学习笔记(2):数据库/集合/文档管理

来源:互联网 发布:绝对计划 知乎 编辑:程序博客网 时间:2024/05/19 09:02

数据库管理

创建数据库

MongoDB创建数据库的语法格式如下:

use DATABASE_NAME

如果数据库不存在,则创建数据库,否则切换到指定数据库。
如果想查看所有数据库,可以使用 show dbs 命令。可以看到,新创建的数据库并不在数据库的列表中, 要显示它,需要向此数据库插入一些数据。
MongoDB 中默认的数据库为test,如果没有创建新的数据库,集合将存放在test数据库中。

删除数据库

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

db.dropDatabase()

删除当前数据库,默认为test,你可以使用db命令查看当前数据库名。

集合管理

创建集合

在MongoDB中,不需要显式创建集合。当插入文档时,如果集合不存在会自动创建该集合并插入文档。如显式创建,语法格式如下:

db.createCollection(name, options)

name是要创建的集合的名称,options为可选参数,是一个文档,用于指定有关内存大小和索引选项。完整的命令如下:

db.createCollection(name,{    capped: <Boolean>,    autoIndexId: <Boolean>,    size: <number>,    max<number>})

options参数中各选项说明如下,

  • capped: 是否启用集合限制,如果开启需要制定一个限制条件,默认为不启用,这个参数没有实际意义
  • autoIndexId: 是否使用_id作为索引,默认为使用(true或false)
  • size: 限制集合使用空间的大小,默认为没有限制
  • max: 集合中最大条数限制,默认为没有限制
    (size的优先级比max要高)

如果想查看当前数据库所有集合,可以使用 show collections 命令。

删除集合

MongoDB删除集合的语法格式如下:

db.COLLECTION_NAME.drop()

文档管理

插入文档

文档的数据结构和JSON基本一样。所有存储在集合中的数据都是BSON格式。
BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。
MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下:

db.COLLECTION_NAME.insert(document)

示例,

db.col.insert({title: 'MongoDB 教程',    description: 'MongoDB 是一个 Nosql 数据库' ,    tags: ['mongodb', 'database', 'NoSQL']})

查看已插入文档:

db.col.find()

使用pretty(),则显示内容有缩进:

db.col.find().pretty()

也可以将数据定义为一个变量,再执行插入操作。

document = ({title: 'MongoDB 教程',    description: 'MongoDB 是一个 Nosql 数据库',    tags: ['mongodb', 'database', 'NoSQL']});db.col.insert(document)

插入文档也可以使用 save() 方法 。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。

更新文档

MongoDB使用 update() 和 save() 方法来更新集合中的文档。
update()方法用于更新已存在的文档。语法格式如下:

db.COLLECTION_NAME.update(   <query>,   <update>,   {     upsert: <boolean>,     multi: <boolean>,     writeConcern: <document>   })

参数说明:

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

示例,

db.col.update({‘title’:’MongoDB 教程’},{$set:{‘title’:’MongoDB’}})

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

db.COLLECTION_NAME.save(   <document>,   {     writeConcern: <document>   })

参数说明:

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

删除文档

MongoDB使用remove()函数移除集合中的数据。remove() 方法的基本语法格式如下所示:

db.COLLECTION_NAME.remove(   <query>,   {     justOne: <boolean>,     writeConcern: <document>   })

参数说明:

  • query :(可选)删除的文档的条件。
  • justOne : (可选)如果设为 true 或 1,则只删除一个文档。 不设此参数时,删除所有符合条件的文档。
  • writeConcern :(可选)抛出异常的级别。

示例,

db.col.remove({‘title’:’MongoDB 教程’})

如果你只想删除第一条找到的记录可以设置 justOne 为 1,如下所示:

db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

如果你想删除所有数据,可以使用以下方式(类似常规SQL的truncate 命令):

db.COLLECTION_NAME.remove({})

0 0
原创粉丝点击