4.MongoDB 下载

MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https://www.mongodb.com/download-center#community

根据你的系统下载 32 位或 64 位的 .msi 文件,下载后双击该文件,按操作提示安装即可。

安装过程中,你可以通过点击 "Custom(自定义)" 按钮来设置你的安装目录。

我这里安装在E:\MongoDB\Server\3.2 。

创建数据目录

MongoDB将数据目录存储在 db 目录下。但是这个数据目录不会主动创建,我们在安装完成后需要创建它。请注意,数据目录应该放在根目录下((如: C:\ 或者 E:\ 等 )。

在本教程中,我们已经在 E盘安装了 mongodb,现在让我们创建一个 data 的目录然后在 data 目录里创建 db 目录。

c:\>cd E

e:\>mkdir data

ce:\>cd data

ce:\data>mkdir db

ce:\data>cd db

ce:\data\db>

你也可以通过 window 的资源管理器中创建这些目录,而不一定通过命令行。

命令行下运行 MongoDB 服务器

为了从命令提示符下运行 MongoDB 服务器,你必须从 MongoDB 目录的 bin 目录中执行 mongod.exe 文件。

mongod --dbpath E:\data\db

如果执行成功,会输出如下信息:

2018-05-14T20:18:19.446+0800 I CONTROL  [initandlisten] MongoDB starting : pid=9548 port=27017 dbpath=E:\data\db 64-bit host=DESKTOP-H6D4B3F
2018-05-14T20:18:19.447+0800 I CONTROL [initandlisten] targetMinOS: Windows 7/Windows Server 2008 R2
2018-05-14T20:18:19.448+0800 I CONTROL [initandlisten] db version v3.2.20
2018-05-14T20:18:19.452+0800 I CONTROL [initandlisten] git version: a7a144f40b70bfe290906eb33ff2714933544af8
2018-05-14T20:18:19.452+0800 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2o-fips 27 Mar 2018
2018-05-14T20:18:19.453+0800 I CONTROL [initandlisten] allocator: tcmalloc
2018-05-14T20:18:19.454+0800 I CONTROL [initandlisten] modules: none
2018-05-14T20:18:19.454+0800 I CONTROL [initandlisten] build environment:
2018-05-14T20:18:19.454+0800 I CONTROL [initandlisten] distmod: 2008plus-ssl
2018-05-14T20:18:19.455+0800 I CONTROL [initandlisten] distarch: x86_64
2018-05-14T20:18:19.455+0800 I CONTROL [initandlisten] target_arch: x86_64
2018-05-14T20:18:19.456+0800 I CONTROL [initandlisten] options: { storage: { dbPath: "E:\data\db" } }
2018-05-14T20:18:19.461+0800 I - [initandlisten] Detected data files in E:\data\db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2018-05-14T20:18:19.462+0800 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=4G,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),verbose=(recovery_progress),
2018-05-14T20:18:19.873+0800 I STORAGE [initandlisten] WiredTiger [1526300299:873739][9548:140712150131024], txn-recover: Main recovery loop: starting at 1/11136
2018-05-14T20:18:19.982+0800 I STORAGE [initandlisten] WiredTiger [1526300299:982555][9548:140712150131024], txn-recover: Recovering log 1 through 2
2018-05-14T20:18:20.099+0800 I STORAGE [initandlisten] WiredTiger [1526300300:99093][9548:140712150131024], txn-recover: Recovering log 2 through 2
2018-05-14T20:18:20.841+0800 I NETWORK [HostnameCanonicalizationWorker] Starting hostname canonicalization worker
2018-05-14T20:18:21.070+0800 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory 'E:/data/db/diagnostic.data'
2018-05-14T20:18:21.072+0800 I NETWORK [initandlisten] waiting for connections on port 27017
2018-05-14T20:18:57.520+0800 I NETWORK [initandlisten] connection accepted from 127.0.0.1:57811 #1 (1 connection now open)
2018-05-14T20:19:17.287+0800 I NETWORK [conn1] end connection 127.0.0.1:57811 (0 connections now open)
2018-05-14T20:22:22.345+0800 I NETWORK [initandlisten] connection accepted from 127.0.0.1:57914 #2 (1 connection now open)
2018-05-14T20:22:40.307+0800 I COMMAND [conn2] command test.runoob command: insert { insert: "runoob", documents: [ { _id: ObjectId('5af97f90218608b3c0f3320a'), x: 10.0 } ], ordered: true } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 reslen:25 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, Database: { acquireCount: { w: 1, W: 1 } }, Collection: { acquireCount: { W: 1 } } } protocol:op_command 103ms
2018-05-14T20:26:38.734+0800 I COMMAND [conn2] command runoob.runoob command: insert { insert: "runoob", documents: [ { _id: ObjectId('5af9807e218608b3c0f3320c'), name: "菜鸟教程" } ], ordered: true } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 reslen:25 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, Database: { acquireCount: { w: 1, W: 1 } }, Collection: { acquireCount: { W: 1 } } } protocol:op_command 244ms
2018-05-14T20:27:09.967+0800 I COMMAND [conn2] dropDatabase runoob starting
2018-05-14T20:27:09.967+0800 I COMMAND [conn2] dropDatabase runoob finished
2018-05-14T20:30:11.173+0800 I COMMAND [conn2] command test.myco12 command: insert { insert: "myco12", documents: [ { _id: ObjectId('5af98152218608b3c0f3320d'), name: "菜鸟教程" } ], ordered: true } ninserted:1 keyUpdates:0 writeConflicts:0 numYields:0 reslen:25 locks:{ Global: { acquireCount: { r: 2, w: 2 } }, Database: { acquireCount: { w: 1, W: 1 } }, Collection: { acquireCount: { w: 1, W: 1 } } } protocol:op_command 285ms
2018-05-14T20:31:18.783+0800 I COMMAND [conn2] CMD: drop test.myco12

使用:

  1. MongoDB - 创建数据库

> show dbs   #显示所有的数据库
local 0.000GB
test 0.000GB
> use runoob 使用runoob数据库,如果不存在会自动创建
switched to db runoob

然而再执行show dbs发现runoob并不在数据库中

> show dbs
local 0.000GB
test 0.000GB
> use runoob
switched to db runoob
> show dbs
local 0.000GB
test 0.000GB
>

要显示它,我们需要向 runoob 数据库插入一些数据。

>  db.runoob.insert({"name":"catxjd"})   #插入数据
WriteResult({ "nInserted" : 1 })
> show dbs
local 0.000GB
runoob 0.000GB
test 0.000GB

2. 删除数据库

删除数据库之前需要先进入到要删除的数据库中

> show dbs
local 0.000GB
runoob 0.000GB
test 0.000GB
> use runoob
switched to db runoob
> db.dropDatabase() #删除数据库
{ "dropped" : "runoob", "ok" : 1 }
> show dbs
local 0.000GB
test 0.000GB

3. 创建集合

MongoDB 中使用 createCollection() 方法来创建集合。

语法格式:

db.createCollection(name, options)

参数说明:

  • name: 要创建的集合名称
  • options: 可选参数, 指定有关内存大小及索引的选项

options 可以是如下参数:

字段 类型 描述
capped 布尔 (可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。
autoIndexId 布尔 (可选)如为 true,自动在 _id 字段创建索引。默认为 false。
size 数值 (可选)为固定集合指定一个最大值(以字节计)。
如果 capped 为 true,也需要指定该字段。
max 数值 (可选)指定固定集合中包含文档的最大数量。

在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段。

例如:向test数据库中插入runob集合

> use test       #使用test数据库
switched to db test
> show collections #显示所有的集合
> db.createCollection("runob") #创建新的集合
{ "ok" : 1 }
> show collections #显示所有的集合
runob

4. 删除集合

MongoDB 中使用 drop() 方法来删除集合。

语法格式:

db.collection.drop()

返回值

如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。

> db.createCollection("runob1")  #新建一个新的集合
{ "ok" : 1 }
> show collections #此时有2个集合了
runob
runob1
> db.runob1.drop() #删除刚建的集合
true
> show collections #看,只剩下一个了
runob

4. 插入文档

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

db.COLLECTION_NAME.insert(document)
> document=({title: 'MongoDB 教程',          #定义一个变量
... description: 'MongoDB 是一个 Nosql 数据库',
... by: '菜鸟教程',
... url: 'http://www.runoob.com',
... tags: ['mongodb', 'database', 'NoSQL'],
... likes: 100
... });
{
"title" : "MongoDB 教程",
"description" : "MongoDB 是一个 Nosql 数据库",
"by" : "菜鸟教程",
"url" : "http://www.runoob.com",
"tags" : [
"mongodb",
"database",
"NoSQL"
],
"likes" : 100
}
> db.col.insert(document) #插入
WriteResult({ "nInserted" : 1 })
> db.col.find()
{ "_id" : ObjectId("5af98b28218608b3c0f33210"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 }
>

5. MongoDB 更新文档

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

update() 方法

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

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

参数说明:

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

参考:www.runoob.com/mongodb

MongDB安装使用的更多相关文章

  1. centos6.9上mongdb安装

    一.设置yum源 vi /etc/yum.repos.d/mongodb.repo [mongodb-org-3.2] name=MongoDB Repository baseurl=https:// ...

  2. PHP7 MongDB 安装与使用

    我们使用 pecl 命令来安装: /usr/local/php7/bin/pecl install mongodb 执行成功后,会输出以下结果: …… Build process completed ...

  3. mongDb安装

    1.下载安装包:https://www.mongodb.com/download-center#community 2.tar -xzvf mongodb-linux-x86_64-rhel70-3. ...

  4. mongdb安装配置

    一.先登录Mongodb官网https://www.mongodb.com/download-center#community 下载   安装包.32.64位的都行. 或者查看我的百度云(使用win7 ...

  5. Linux服务部署Yapi项目(安装Node Mongdb Git Nginx等)

    Linux服务部署Yapi 一,介绍与需求 1,我的安装环境:CentOS7+Node10.13.0+MongoDB4.0.10. 2,首先安装wget,用于下载node等其他工具 yum insta ...

  6. mongoDB2--mongoDB的下载和安装。

    mongdb安装(1)安装准备我们在Linux环境下来安装mongodb,如果没有Linux操作系统的童鞋,可以使用Vmware虚拟机安装一个Linux虚拟环境来学习.这里就不再赘述.我们到mongo ...

  7. 安装MongoDB x86_64

    1.下载MongoDB 下载mongodb的windows版本,有32位和64位版本,根据系统情况下载,下载地址:http://www.mongodb.org/downloads 2.安装MongoD ...

  8. mongoDB学习手记1--Windows系统下的安装与启动

    第一步:下载安装包 我们首先需要下载 mongodb 的安装包,直接到官网下载即可.地址为:https://www.mongodb.com/download-center#community. 看下自 ...

  9. 基于centos6.5安装部署mongdb3.6

    注意:不同的版本的centos,mongdb安装方式不同,请注意版本号!! 基于centos6.5安装部署mongdb3.6 方式有多种,本文介绍使用wget命令来下载获取mongdb,具体命令如下 ...

随机推荐

  1. tflearn kears GAN官方demo代码——本质上GAN是先训练判别模型让你能够识别噪声,然后生成模型基于噪声生成数据,目标是让判别模型出错。GAN的过程就是训练这个生成模型参数!!!

    GAN:通过 将 样本 特征 化 以后, 告诉 模型 哪些 样本 是 黑 哪些 是 白, 模型 通过 训练 后, 理解 了 黑白 样本 的 区别, 再输入 测试 样本 时, 模型 就可以 根据 以往 ...

  2. 【Java】抽象类和接口

    一.抽象类和抽象方法 1.什么是抽象类 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法.普通方法.static方法.常量和变量等内容. 但是普通类中不能有抽象方法, ...

  3. WPF控件开源资源

    (转)WPF控件开源资源 Textbox Drag/Drop in WPFhttp://www.codeproject.com/Articles/42696/Textbox-Drag-Drop-in- ...

  4. Android自定义控件之仿美团下拉刷新

    美团的下拉刷新分为三个状态: 第一个状态为下拉刷新状态(pull to refresh),在这个状态下是一个绿色的椭圆随着下拉的距离动态改变其大小. 第二个部分为放开刷新状态(release to r ...

  5. Linux使用sshfs通过ssh挂载远端机器

    Linux使用sshfs通过ssh挂载远端机器 今天自己的开发机器突然磁盘剩余空间报警,再弄一块硬盘不太现实,于是想到了公司有一台机器上挂了一个大的磁盘,于是,我把目标偷偷锁定到了那个机器上. 折腾了 ...

  6. 从零开始编写深度学习库(五)Eigen Tensor学习笔记2.0

    1.extract_image_patches函数的使用: 假设Eigen::Tensor形状为(3,8,8,9),现在要对第二维.第三维根据size大小为(2,2),stride=(2,2),那么如 ...

  7. (转) Myisam和Innodb索引实现的不同(存储结构)

    转自 :  https://blog.csdn.net/donghaixiaolongwang/article/details/60751543

  8. Apache的Mod_rewrite学习 (RewriteCond重写规则的条件) 转

    RewriteCondSyntax: RewriteCond TestString CondPattern [flags] RewriteCond指令定义一条规则条件.在一条RewriteRule指令 ...

  9. Java [Leetcode 383]Ransom Note

    题目描述: Given
 an 
arbitrary
 ransom
 note
 string 
and 
another 
string 
containing 
letters from
 al ...

  10. WC2019 T1 数树

    WC2019 T1 数树 传送门(https://loj.ac/problem/2983) Question 0 对于给定的两棵树,设记两颗树 \(A,B\) 的重边数量为 \(R(A,B)\),那么 ...