1. MongoDB的安装方法

(1)下载MongoDB 相应的版本;

(2)设置数据文件和日志文件的存放目录;

(3)启动MongoDB服务;

(4)将MongoDB作为服务启动。

2. MongoDB文档基本操作的方法

(1)插入并保存文档;

(2)删除文档;

(3)修改文档。

一、数据库操作

use database_name,如果数据库不存在将创建一个新的数据库;

否则将返回现有的数据库。

db                                              --显示当前选择的数据库

use mydb                                        --创建或切换数据库

db

show dbs                                        --显示所有数据库,没有刚建立的mydb

db.movie.insert({"name":"tutorials yiibai"})    --要显示的数据库,需要把它插入至少一个文件。

show dbs

db.dropDatabase()                               --删除数据库

show dbs

db命令显示的还是mydb,但是没有数据。

二、集合操作

a.显式创建集合

db.createCollection(name, options):name 是要创建的集合的名称. Options 是一个文件,用于指定配置的集合

db.createCollection("movie")

show collections

db.movie.drop()

show collections

b.隐式创建集合

db.movie.insert({"name":"tutorials yiibai"})

show collections                           --查询所有集合

db.getCollectionNames()                    --查询所有集合

db.movie.count()                           --查看集合中文档总数据量

db.movie.dataSize()                        --查看集合空间大小

db.movie.getDB()                           --查看集合所在数据库

db.movie.stats()                           --查看当前集合状态

db.movie.renameCollection("movies")        --集合重命名

show collections

db.movies.copyTo("movie")                  --集合复制

db.movies.drop()                           --删除集合

db.movie.help()                            --查看集合帮助

db.getCollection("movie")                  --得到指定名称的聚集集合

db.printCollectionStats()                  --显示当前db所有聚集索引的状态

三、文档操作

3.文档操作-插入操作

1.插入操作

a.单个插入

db.movie.insert({"name":"HuanLeSong","Times":10000})

db.movie.insert({"name":"SanJie","Times":20000})

db.movie.insert({"name":"SanJie","Address":"China"})

db.movie.find()

movieVar1 = {"name":"HuanLeSong","Times":10000};  --创建文档变量,对象

movieVar2 = {"name":"SanJie","Times":20000};

movieVar3 = {"name":"SanJie","Address":"China"};

db.movie.insert(movieVar1)

db.movie.insert(movieVar2)

db.movie.insert(movieVar3)

db.movie.find()

db.movie.insert({"_id":08001,"name":"zhangsan"})

db.movie.find()

db.movie.insert({"_id":08001,"name":"lisi"})

db.movie.save({"_id":08001,"name":"lisi"})

db.movie.find()

Insert和Save的区别是:如果插入的集合的“_id”值,在集合中已经存在,用Insert执行插入操作会报异常,已经存在"_id"的键。用Save如果系统中没有相同的"_id"就执行插入操作,有的话就执行覆盖掉原来的值。相当于修改操作。

b.批量插入

采用数组的方式

db.movie.insert([{username:'aaa',password:'bbb',tel:'123123123'},{username:'bbb',password:'ccc',tel:'123123234'}]);

db.movie.find()

2.删除操作

db.movie.find()

db.movie.remove({"name":"HuanLeSong"})  --按条件删除

db.movie.find()

db.movie.remove({})                     --删除所有(集合本身不删除)

db.movie.find()

show collections

db.movie.drop()                         --删除所有(集合带文档)

db.movie.find()

show collections

remove({})和drop()的区别:

remove({}):删除所有文档,但不会删除集合本身,原索引也会保留

drop():删除整个集合,包括索引,然后重新创建集合和建立索引

3.修改操作

文档存入数据库后,就可以用update方法来修改它,update有两个参数一个是查询文档,找出需要更新的文档。一个是修改文档,描述对找到的文档做哪些修改

更新操作是原子的,若是两个更新同时发生,先到达服务器的先执行。

a.替换更新update

db.movie.update({username:"bbb"},{password:"abc"});

db.movie.find()

b.修改器更新

I.$set修改器

$set用来指定一个键的值,如果这个键不存在,就创建它。并且,只修改第一个

db.movie.update({username:"aaa"},{$set:{password:"*****"}});

db.movie.find()

II.$unset修改器

$unset来删除一个键

db.movie.update({username:"aaa"},{$unset:{tel:1}});

db.movie.find()

III.$inc修改器

$inc用来增加已有的键值,或者在键值不存在时创建。

db.movie.update({username:"aaa"},{$inc:{age:2}});  --键值age不存在,创建age并赋值2

db.movie.find()

db.movie.update({username:'aaa'},{$inc:{age:2}});   --在原有的值上 age+2

db.movie.find()

IV.upsert

当update的第三个参数设置为true的时候,为upsert模式

upsert是一个特殊的更新。当没有文档符合更新条件,就会以这个条件创建新的文档。

db.movie.update({username:'aaa'},{$set:{abc:123}},true)        --当没有文档符合更新条件,就会以这个条件创建新的文档

db.movie.find()

db.movie.update({username:'aaa'},{$set:{abc:234}},true)        --当文档符合更新条件,就会更新文档

db.movie.find()

V.数组修改器

数组修改器只能用于数组。

$push会像已有的数组末尾添加一个元素

$pop会删除一个元素

db.movie.update({username:'aaa'},{$push:{arr:1}});

db.movie.find()

db.movie.update({username:'aaa'},{$push:{arr:2}});

db.movie.find()

db.movie.update({username:'aaa'},{$push:{arr:5}});

db.movie.find()

db.movie.update({username:'aaa'},{$push:{arr:3}});

db.movie.find()

db.movie.update({username:'aaa'},{$pop:{arr:1}}); pop原本是正向删除数组最后一个元素,取负号后-后倒序删除

db.movie.find()

db.movie.update({username:'aaa'},{$pop:{arr:-1}});

db.movie.find()

VI.数组的定位修改器

若是数组中多个值,我们只想修改其中的部分值,有两种方法操作数组中的值:通过位置和定位操作符($)

数组下标是从0开始

db.movie.update({username:'aaa'},{$set:{'arr.2':10}}); 数组第三个元素插入数值10

db.movie.find()

db.movie.update({'arr.2':10},{$set:{'arr.$':100}});  数组第三个元素替换为100

db.movie.find()

VII.多文档修改

第四个参数设置为true

db.movie.insert([{username:'aaa',password:'bbb',tel:'123123123'},{username:'bbb',password:'ccc',tel:'123123234'}]);

db.movie.update({username:"aaa"},{$set:{password:"******"}},false,true);

db.movie.find()

MongoDB文档的基本操作的更多相关文章

  1. mongoDB 文档概念

    mongoDB 文档概念 什么是文档 文档是 mongodb 基本的数据组织单元,类似于mysql 中的记录 文档由多个键值对组成,每个键值对表达一个数据项 属于 bson 数据 ps:  bson ...

  2. mongoDB 文档操作_删

    mongoDB 文档删除 MySQL对比 mysql delete from table where ... mongo db.collection.deleteOne(query) 删除函数 del ...

  3. Lucene7.2.1系列(二)luke使用及索引文档的基本操作

    系列文章: Lucene系列(一)快速入门 Lucene系列(二)luke使用及索引文档的基本操作 Lucene系列(三)查询及高亮 luke入门 简介: github地址:https://githu ...

  4. mongodb文档支持的数据类型

    版权声明:转载请标明来源. https://blog.csdn.net/u014285882/article/details/25510377 1. 存储类型 mongodb文档相似于json,但不是 ...

  5. MongoDB文档基本操作

    一.插入文档 使用insert()或save()方法向集合插入文档 >db.COLLECTION_NAME.insert(document) 详细用法可以参考MongoDB菜鸟教程 二.查找文档 ...

  6. mongodb文档的CRUD

    本章会介绍对数据库移入或者移出数据的基本操作 向集合添加文档 从集合删除文档 更新现有的文档 为这些操作选择合适的安全级别 添加删除数据库 添加数据库 :use foo  如果存在foo 就use   ...

  7. MongoDB 文档的查询和插入操作

    MongoDB是文档型数据库,有一些专门的术语,和关系型DB相似,但也有差异,例如,Collection类似于关系型DB的Table,document类似于row,key/value pair类似于c ...

  8. 3.从Node.js操作MongoDB文档

    1.更新文档结构,而非SQL 2.数据库更新运算符 在MongoDB中执行对象的更新时,需要确切的指定需要改变什么字段.需要如何改变.不像SQL语句建立冗长的查询字符串来定义更新. MongoDB中可 ...

  9. MongoDB文档、集合、数据库简介

    文档 概述 文档是MongoDB的核心概念,是数据的基本单元,非常类似于关系数据库中的行.在MongoDB中,文档表示为键值对的一个有序集.MongoDB使用Javascript shell,文档的表 ...

随机推荐

  1. Http_code码

    _codes = { : (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: (: ...

  2. Selenium 库

    自动化测试工具,支持多种浏览器.爬虫中主要用来解决JavaScript渲染问题. 用法 基本使用 from selenium import webdriver #浏览器驱动对象 from seleni ...

  3. PyEngine3D

    git clone https://github.com/ubuntunux/PyEngine3D cd PyEngine3D pip install -r requirements.txt pyth ...

  4. Systemd初始化进程/RHEL 6系统中System V init命令与RHEL 7系统中systemctl命令的对比

    Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程.初始化进程作为Linux系统的第一个进程,它需要完成Li ...

  5. [osg][opengl]透视投影的参数Perspective

    gluPerspective这个函数指定了观察的视景体(frustum为锥台的意思,通常译为视景体)在世界坐标系中的具体大小,一般而言,其中的参数aspect应该与窗口的宽高比大小相同.比如说,asp ...

  6. Android的数据的存储方式

    数据的存储方式,总的来说分为三种: ① 文件存储: * SharedPreferences存储 * SD卡存储 ---- Environment * 数据库存储 ---- SQLite .MySQL. ...

  7. 数据库 Mysql 使用,优化,索引

    数据库事务的隔离级别,由低到高 : READ UNCOMMITTED(读未提交数据):允许事务读取未被其他事务提交的变更数据,会出现脏读.不可重复读和幻读问题. READ COMMITTED(读已提交 ...

  8. cordova + Vue 开发 APP 上手指南

    什么是 cordova cordova 是由 Apache 基金会支持的,使用 HTML5 + CSS3 + JS 来构建多平台 APP 程序的开发框架.其支持调用手机系统(Android.IOS.W ...

  9. (转)Windows上搭建Kafka运行环境

    转自:<Windows上搭建Kafka运行环境> 完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS   在环境搭建过 ...

  10. eclipse中怎么调出左边项目列表,解决方法:主界面的最上面一栏的Window--ShowView--Project Explorer

    主界面的最上面一栏的Window--ShowView--Project Explorer