mongoDB集合 文档创建修改删除以及查询命令总结

mongodb在windows下的安装,启动查看上一篇:mongoDB安装详解

一、登录 查看数据库 数据库中的集合 文档 添加文档,修改文档,删除文档

1、查看有哪些数据库可以用:

show dbs;

2、查看当前使用的数据库的名称:

db.getName();

3、使用某个数据库,和mysql中一样可以进行数据库之间的转化

use  dbname;

4、 如果没有数据库则创建数据库,mongodb没有提供像mysql等的创建数据库的语句但有相似功能的命令:如果有这个数据库则使用这个数据库如果没有则创建这个数据库

use dbname;

之后进行一些操作如:db.createCollection("collectionName")

// 这样就创建了dbname 数据库,同时也创建了一个集合

5、在当前数据库中创建集合:

例:db.createCollection(‘collectionName‘);

6、查看当前数据库下的所有集合:

db.getCollectionNames();

7、获取当前数据库的某个指定集合:

db.getCollection("collectionName");

8、向这个集合中添加数据:使用insert() 函数

db.collectionName.insert({});这里注意一下mongodb使用数据的格式为bson 如果你了解 jsonObject 你会发现这两种格式很像:

BSON这种格式是专门为MongoDB而开发的,类似json的一种二进制格式。

这种格式不一定比json存储的文件小,其优点是解释快。

例:db.mytest.insert({name:‘name1‘,age:2})

9、查看这个集合中有哪些文档:使用find()函数

例:db.mytest.find();

// 查询mytest这个集合中的所有文档

10、有条件的查询

例:db.mytest.find({name:‘name1‘});

// 查询有name键,且值为name1的文档

11、多条件查询:

例:db.mytest.find({name:‘name1‘,age:2})

// 查询name为name1age为2 的文档

12、distinct 查询:

例:db.mytest.distinct("name")

// 从mytest这个集合中查询所有的文档,但name键的值不能有重复

13、查询小于某个值 或大学某个值

例:db.mytest.find({age:{$lt:2}})

// 查询mytest这个集合中age<2的文档

例:db.mytest.find({age:{$gt:2}})

// 查询mytest 集合中age>2的文档

14、大于等于,小于等于

例:db.mytest.find({age:{$lte:2}})

// 查询mytest集合中age<=2的文档

例:db.mytest.find({age:{$gte:2}})

// 查询mytest集合中age>=2的文档

15、在两个数之间

例:db.mytest.find({age:{$lt:6,$gt:2}})

// 查询mytest集合中age<6 and age>2的文档

16、排序查询: 排序使用 sort()函数

例:db.mytest.find().sort({age:1})

//按age升序

例:db.mytest.find().sort({age:-1})

//按age降序

// 进行了升序查询

例:db.mytest.find({name:‘name1‘}).sort({age:1})

17、查询前几个指定文档:使用limit()函数

例:db.mytest.find().limit(3)

// 查询mytest集合中的前三个文档

18、in,notin查询:$in $nin

例:db.mytest.find({age:{$in:[2,3,4]}})

// 从mytest集合中查询age为2或3或4的文档和mysql的in是相似的

例:db.mytest.find({age:{$nin:[2,3,4]}})

// 从mytest集合中查询age不为2并且不为3并且不为4的文档

19、or查询使用$or

例:db.mytest.find({$or:[{name:‘name1‘},{age:3}])

// 查询name为name1或age为3的文档

20、查询这个集合中有多少条数据:

例:db.mytest.count();

21、删除集合中的某个文档,或所有文档使用remove()函数

例:db.mytest.remove({name:‘name1‘})

// 从mytes集合中删除有name键并且值值为name1的那个文档

例:db.mytest.remove()

// 删除mytest集合中的所有文档

22、删除某个集合:使用drop()函数

例:db.mytest.drop()

// 删除mytest这个集合

23、删除当前数据库:使用dropDatabase()函数

例:db.dropDatabase();

二、  修改器

1、替换某个档案使用 update命令

例:db.mytest.update({name:‘name1‘},{name:‘name1‘,age:2});

//将 mytest这个集合中name为name1的文档用后面的替换掉

// 在update中有两个参数,第一个就是要被替换的文档,第二个就是要替换的文档

2、这样我们想修改一下的话很麻烦,所以我们要使用$set修改器来修改:

例:db.mytest.update({name:‘name‘,{$set:{name:‘name2‘}}})

// 将mytest集合中的name:‘name‘的档案修改name:‘name2‘

// $set 修改器和update替换不同,他的第一个参数,是来找到这个档案,第二个参数就是要修改的属性字段,如果不存在则新增这个键值对,如果有则修改他的值

3、如果有则增加指定的数量级,如果不存在则添加键值对:

例:db.mytest.update({name:‘name1‘},{$inc:{age:3}})

//在mytest这个集合中查找键值为name:name1的文档,如果文档中有age键则在原有的值上添加3如果没有则添加这个键值对

4、数组修改器,如果这个数组有则在数组的最后添加值,如果这个数组没有则创建数组:

例:db.mytest.update({name:‘name1‘},{$push:{comment:{name:‘cname‘,age:6,comment:‘good‘}}})

//在mytest集合中查找name:‘name1‘的键值的文档,找到之后再往这个文档中添加一个comment数组,数组中的内容包括name,age,comment

db.mytest.update({name:‘name1‘},{$push:{comment:{name:cname1,age:7,comment:‘good2‘}}})

// 第二次操作的时候,comment这个集合已经存在了,所以就会将这些键值对作为数据的一个元素,添加到comment数组的最后

5、addToSet向指定的键添加值,而指定的这个键作为数组名称了:

例:db.mytest.update({name:‘name1‘},{$addToSet:{email:‘[email protected]‘}})

// 通过addToSet向mytest集合的键值为name:name1的这个文档中添加了一个email数组,如果数组中有则不会再次添加,如果没有则会添加

6、addToSet 和 each 组合一次向数组中添加多个值:

例:db.mytest.update({name:‘name1‘},{$addToSet:{email:{$each:[‘[email protected]‘,‘[email protected]‘,‘[email protected]‘]}}})

// 通过each的遍历将多个值一次添加到email这个数组中

注意:这里强调一下,在mongodb中使用的就是bson这个格式多以,你也会发现,我们使用的insert(),find() remove() 等函数的参数都是用bson这种格式来写的。

三、BSON了解

简单了解BSON:

BSON是一种类json的一种二进制形式的存储格式,简称BinaryJSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型。

BSON可以做为网络数据交换的一种存储形式,这个有点类似于Google的ProtocolBuffer,但是BSON是一种schema-less的存储形式,它的优点是灵活性高,但它的缺点是空间利用率不是很理想,

BSON有三个特点:轻量性、可遍历性、高效性

格式对比:

(1)、bson: {key:value}

(2)、json:{key:value}

(3)、Map:{key=value}

时间: 2024-10-12 08:02:39

mongoDB集合 文档创建修改删除以及查询命令总结的相关文章

Mongodb嵌套文档的修改-利用数组修改器更新数据

初学mongodb的可能和我一样有个疑问,mongodb是文档型的,那么如果一个文档嵌套另外一个文档,如果对这个嵌套文档进行增删改查呢. 就像如下这样:,如何对auther里面的name进行增删改查呢?这篇博客我们一起来看一下. 这里要用到几个修改器:$push,$pop,$pull 首先增加一个name: db.myFirstCollection.update({_id:1},{$push:{"auther":{"name":1}}}) 删除最后一个值,若要删除第

MongoDB的文档、集合、数据库(二)

为了理解MongoDB的名词,可以将其于关系型数据库进行对比: 一.文档 概述 文档是MongoDB的核心概念,是数据的基本单元,非常类似于关系数据库中的行.在MongoDB中,文档表示为键值对的一个有序集.MongoDB使用Javascript shell,文档的表示一般使用Javascript里面的对象的样式来标记,如下: {"title":"hello!"} {"title":"hello!","recomme

jsWindow 对象 Window 对象 Window 对象表示浏览器中打开的窗口。 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。 注释:没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。 Window 对象集合 集合 描述 frames[] 返回窗口中所有命

一.JSX简介 JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到<,JSX就当HTML解析,遇到{就当JavaScript解析. 如下(JS写法) var child1 = React.createElement('li', null, 'First Text Content'); var child2 = React.createElement('li', null, 'Second Text Content'); var

jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条

jQuery---jq操作标签文本(html(),text()),jq操作文档标签(插入,删除,修改),克隆,,jq操作属性,jq操作class属性,jq操作表单value,jq操作css,jq操作盒子(重要),jq操作滚动条 一丶jQ操作标签内文本 html() 标签元素中的内容 /** 替换的内容可以使一个js对象,jq对象,文本 **/ /* 获取值:获取选中标签元素的所有内容 ,包括标签*/ $('ul').html() " <li>1</li> <li&g

MongoDB数据库文档操作

前面的话 本文将详细介绍MongoDB数据库关于文档的增删改查 插入文档 要将数据插入到 MongoDB 集合中,需要使用 MongoDB 的 insert()或save()方法,还有insertOne()或insertMany()方法 [insert()] insert()命令的基本语法如下 db.COLLECTION_NAME.insert(document) 在插入的文档中,如果不指定_id参数,那么 MongoDB 会为此文档分配一个唯一的ObjectId._id为集合中的每个文档唯一的

MongDB集合文档操作符

一.MongoDB - 连接 1.启动 MongoDB 服务 只需要在 MongoDB 安装目录的 bin 目录下执行 mongod 即可 执行启动操作后,mongodb 在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息. 可以使用 MongoDB shell 来连接 MongoDB 服务器,可以使用 PHP 来连接 MongoDB. 标准 URI 连接语法: mongodb://[username:[email protected]]host1[

电商项目实战(架构七)——Mongodb实现文档操作

一.前言 对于频繁读写的功能,例如商品的浏览记录,Mongodb中的添加.删除.查询可以很好的解决.Mongodb是为快速开发互联网Web应用而构建的数据库系统,其数据模型和持久化策略就是为了构建高 读/写 吞吐量和高自动灾备伸缩性的系统. 二.Mongodb的安装和使用(windows系统下) 1.下载Mongodb安装包,下载地址:https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-3.2.21-signed.

MongoDB 插入文档

MongoDB 插入文档 本章节中我们将向大家介绍如何将数据插入到MongoDB的集合中. 文档的数据结构和JSON基本一样. 所有存储在集合中的数据都是BSON格式. BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON. 插入文档 MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法如下: db.COLLECTION_NAME.insert(document) 实例 以下文档可以存储在 MongoDB 的 runoob 数据库 的 c

mongodb 分布式文档存储数据库

简述: MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型. Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引. 在高负载的