开发者社区> ArimaMisaki> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

一幅长文细学MongoDB(三)——数据库操作

简介: 本文讲述了如何对MongoDB进行一些简单的操作
+关注继续查看

3 数据库操作

3.2 创建删除操作

选择和创建数据库

use 数据库名称;

查看所有数据库

show dbs;
或
show databases;

查看目前正在使用的数据库

db;

删除持久化的数据库

db.dropDatatbase();

注意事项:通过use命令创建的数据库如果里面为空而没有添加集合,则该数据库仍然处于内存中而没有持久化到磁盘上


3.3 集合操作

显式创建集合

db.createCollection(name);

查看集合

show collections;
或
show tables;

删除集合,删除成功为true,否则为false

db.集合名.drop();


3.4 文档插入

说明:文档的数据结构和JSON基本一致;在没有接触MongoDB之前,应该很多人和我一样以为该数据库可以插入类似于txt那样的文档,实际上并非如此。

注意事项:在插入数据时,若db.集合.insert()的集合名不存在,则会隐式地创建一个集合;在一次性插入多条数据时,容易出现失败,这时候可以使用try catch进行异常捕获处理。

使用insert()或save()方法插入文档

db.集合名.insert(文档内容);

查看插入文档

db.集合名.find();

将BSON定义为变量后再插入

变量名=文档内容;
db.集合名.insert(变量名);

批量插入

db.集合名.insert([文档1,文档2,...]);

异常捕获

try{
    db.集合名.insert([文档1,文档2,...]);
} catch(e) {
    print(e);
}


3.5 文档查询

查询所有

db.集合名.find();

选择查询

db.集合名.find({键值对});

当有多个对象符合查询的键值对时,如果想要返回第一个,请使用findOne

db.集合名.findOne({键值对});

投影查询

db.集合名.find({键值对},{投影的字段:1,...});

格式化查询

db.集合名.find().pretty()


3.6 文档更新

覆改修改,使用该方式会导致整个集合都会受到影响

db.集合名.update({查询的键值对},{修改的键值对});

局部修改,使用该方式会导致集合中仅符合条件的文档受影响

db.集合名.update({查询的键值对},{$set:{修改的键值对}});

批量修改,使用该方式会修改符合条件的所有文档,不开启默认只修改符合条件文档集合的第一个文档

db.集合名.update({查询的键值对},{修改的键值对},{multi:true});

自增自减修改,使用该方式会在原来的数值上增加或减少

db.集合名.update({查询的键值对},{$inc:{修改的键值对}});


3.7 文档删除

根据条件删除文档

db.集合名.remove(条件);

清空集合内的文档

db.集合名.remove({});


3.8 功能查询

统计查询

db.集合名.count([查询条件],[参数]);

分页查询;意为查询前n页

db.集合名.limit(n);

跳过前面的m页;可以搭配limit使用,意为选定[m,n]

db.集合名.limit(n).skip(m);

排序查询;其中KEY为排序依据的字段,为1则表示升序,为-1则为降序

db.集合名.find().sort({key:1}})


3.9 高级查询

模糊查询;主要通过正则表达式的方式实现

db.集合名.find({field:/正则表达式/})
或
db.集合名.find({字段:/正则表达式/})

比较符查询;主要是>、<、>=、<=

  • (>) 大于 - $gt
  • (<) 小于 - $lt
  • (>=) 大于等于 - $gte
  • (<= ) 小于等于 - $lte
db.col.find({字段名 : {比较符 : 数值}})


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
一幅长文细学MongoDB(四)——索引
本文主要讲述了MongoDB的索引机制以及如何操作索引
23 0
一幅长文细学MongoDB(二)——MongoDB安装
本文主要讲述了如何在window系统和linux系统上部署MongoDB
38 0
初识Mongdb之数据查询篇(三)
初识Mongdb之数据查询篇(三)
19 0
非关型数据库之MongoDB
非关型数据库之MongoDB
47 0
mongodb数据库分片
--配置config server [mongodb@rudy_01 2.6]$ mkdir 27018 [mongodb@rudy_01 2.
839 0
(转载)MongoDB数据库存储
每个 MongoDB 服务器都支持多个数据库。每个数据库都是相对独立的,并且出于安全性和为了方便管理,数据库的数据也独立存储。 Mongo元数据 在MongoDB数据库中名字空间 .system.* 是包含多种系统信息的特殊集合(Collection),如下: system.namespaces 列出所有名字空间。
679 0
+关注
ArimaMisaki
一个认真并且每天保持学习的开荒者
文章
问答
文章排行榜
最热
最新
相关电子书
更多
PostgresChina2018_张启程_为什么我们抛弃MongoDB和MySQL,选择PgSQL
立即下载
开源数据库 MongoDB 专场 MongoDB疑难杂症分析及优化
立即下载
阿里云MongoDB备份恢复功能说明和原理介绍
立即下载