MognoDB的安装和简单使用

一、先登录Mongodb官网https://www.mongodb.com/download-center#community 下载   安装包。32、64位的都行。


二、安装MongoDB

下载后的安装包:

安装比较简单,类似于普通QQ软件,中间主要是选择“Custom”自定义 安装路径修改下:E:\software\MongoDB\

然后不断“下一步”,安装至结束。


安装比较容易。难点在启动Mongodb的服务以及将MongoDB设置成Windows服务,加配置文件在windows的“服务”中找到。

 

三、先创建数据库文件的存放位置

在MongoDB下创建data,在data下再创建db:E:\software\MongoDB\data\db

因为启动mongodb服务之前需要必须创建数据库文件的存放文件夹,否则命令不会自动创建,而且不能启动成功。


四、启动MongoDB服务

1.打开cmd命令行

2.进入E:\software\MongoDB\bin目录(注意:先输入E:进入E盘,然后输入cd E:\software\MongoDB\bin)

3.输入如下的命令启动mongodb服务:    mongod --dbpath E:\software\MongoDB\data\db


即是在第三步创建的数据库存放文件路径下启动。

4.在浏览器输入http://localhost:27017 (27017是mongodb的端口号)查看,若显示:


则表示,连接成功。如果不成功,可以查看端口是否被占用。

但是在本地windows“服务”中,是没有配置上mongodb 服务的,可以打开“服务”看下



五、配置本地windows mongodb 服务

这样可设置为 开机自启动,可直接手动启动关闭,可通过命令行net start MongoDB 启动。该配置会大大方便。


1.先在data文件下创建一个新文件夹log(用来存放日志文件)


2.在Mongodb新建配置文件mongo.config


可能很多人都不会创建.config配置文件。那给大家介绍下简单的方法:

先创建一个mongo.txt文件,再打开,点击”另存为“,将底下的文件类型更改为”全部类型“,并更改文件名称为mongo.config。

这样就可以创建一个config的配置文件了。



坑:此文件不能是utf-8  默认的,不然报错


2.用记事本打开mongo.config  ,并输入:

dbpath=E:\software\MongoDB\data\db
logpath=E:\software\MongoDB\data\log\mongo.log


3.用管理员身份打开cmd:

可能还有很多人不会管理员身份打开cmd。这也介绍下:

在下图路径下找到cmd 的运行文件

4.配置windows服务:

cmd先跳转到 E:\software\MongoDB\bin目录下。

输入:    mongod --config E:\software\MongoDB\mongo.config --install --serviceName "MongoDB"

即根据刚创建的mongo.config配置文件安装服务,名称为MongoDB。



安装成功!!!!

2. MongoDB 创建数据库

语法

use DATABASE_NAME
  • 1

创建一个 souyunku 的数据库,使用 db 命令查看

> use souyunku
switched to db souyunku
> db
souyunku
>
  • 1
  • 2
  • 3
  • 4
  • 5

查看所有数据库使用show dbs

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB
> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

可以看到,刚创建的数据库 souyunku 并不在数据库的列表中, 要显示它,我们需要向 souyunku 数据库插入一些数据。

> db.souyunku.insert({"name":"关注公众号,搜云库,专注于开发技术的研究与知识分享"})
WriteResult({ "nInserted" : 1 })
> show dbs
admin     0.000GB
config    0.000GB
local     0.000GB
souyunku  0.000GB
test      0.000GB
>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。

3. MongoDB 删除数据库

MongoDB 删除数据库的语法

db.dropDatabase()
  • 1

实例

以下操作会把souyunku 数据删除

查看所有数据库

> show dbs
admin     0.000GB
config    0.000GB
local     0.000GB
souyunku  0.000GB
test      0.000GB
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

切换到souyunku 数据库

> use souyunku
switched to db souyunku
  • 1
  • 2

使用db.dropDatabase() 删除数据库

> db.dropDatabase()
{ "dropped" : "souyunku", "ok" : 1 }
  • 1
  • 2

看到已经删除了

> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
test    0.000GB
> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

4. MongoDB 插入文档

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

db.COLLECTION_NAME.insert(document)
  • 1

以下文档可以存储在 MongoDB 的 souyunku数据库 的 col 集合中:

切换到souyunku 数据库

> use souyunku
switched to db souyunku
  • 1
  • 2
db.col.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '搜云库教程-专注于开发技术的研究与知识分享',
    url: 'http://www.souyunku.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
> db.col.find()
  • 1

以上实例中 col 是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。 
查看已插入文档:

响应

{
    "_id": ObjectId("5a69eb32ec3046ee8ae54dbb"),
    "title": "MongoDB 教程",
    "description": "MongoDB 是一个 Nosql 数据库",
    "by": "搜云库教程-专注于开发技术的研究与知识分享",
    "url": "http://www.souyunku.com",
    "tags": ["mongodb", "database", "NoSQL"],
    "likes": 100
}
>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

我们也可以将数据定义为一个变量,如下所示:

document=({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '搜云库教程-专注于开发技术的研究与知识分享',
    url: 'http://www.souyunku.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

执行后显示结果如下:

{
    "title" : "MongoDB 教程",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "搜云库教程-专注于开发技术的研究与知识分享",
    "url" : "http://www.souyunku.com",
    "tags" : [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes" : 100
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

执行插入操作:

> db.col.insert(document)
WriteResult({ "nInserted" : 1 })
> 
  • 1
  • 2
  • 3

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

3.2 版本后还有以下几种语法可用于插入文档:

db.collection.insertOne():向指定集合中插入一条文档数据。

db.collection.insertMany():向指定集合中插入多条文档数据。

插入单条数据

> var document = db.collection.insertOne({"title": "搜云库"})
> document
{
    "acknowledged" : true,
    "insertedId" : ObjectId("5a69f0dfec3046ee8ae54dbe")
}
> db.collection.find()
{ "_id" : ObjectId("5a69f0dfec3046ee8ae54dbe"), "title" : "搜云库" }
>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

插入多条数据

> var res = db.collection.insertMany([{"title": "搜云库"}, {'description': "关注公众号,搜云库,专注于开发技术的研究与知识分享"}])
> res
{
    "acknowledged" : true,
    "insertedIds" : [
        ObjectId("5a69f188ec3046ee8ae54dbf"),
        ObjectId("5a69f188ec3046ee8ae54dc0")
    ]
}
> db.collection.find()
{ "_id" : ObjectId("5a69f0dfec3046ee8ae54dbe"), "title" : "搜云库" }
{ "_id" : ObjectId("5a69f188ec3046ee8ae54dc0"), "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享" }
> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

5. MongoDB 删除文档

MongoDB remove()函数是用来移除集合中的数据。

MongoDB数据更新可以使用update()函数。在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。

remove() 方法已经过时了,现在官方推荐使用 deleteOne() 和 deleteMany() 方法。

如删除集合下全部文档:

> db.col.deleteMany({})
{ "acknowledged" : true, "deletedCount" : 2 }
> db.col.find()
> 
  • 1
  • 2
  • 3
  • 4

删除 title 等于 “搜云库” 的全部文档:

> db.collection.deleteMany({ title : "搜云库"})
{ "acknowledged" : true, "deletedCount" : 2 }
> 
> db.collection.find()
{ "_id" : ObjectId("5a69f188ec3046ee8ae54dc0"), "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享" }
> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

删除 weixin 等于 “souyunku” 的一个文档:

> db.col.insert({weixin:"souyunku"})
WriteResult({ "nInserted" : 1 })
> db.col.find()
{ "_id" : ObjectId("5a69f5a0ec3046ee8ae54dc1"), "weixin" : "souyunku" }
> db.col.deleteOne({weixin:"souyunku"})
{ "acknowledged" : true, "deletedCount" : 1 }
> db.col.find()
>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

6. MongoDB 查询文档

MongoDB 查询文档使用 find() 方法。

find() 方法以非结构化的方式来显示所有文档。

语法

MongoDB 查询数据的语法格式如下:

> db.collection.find(query, projection)
  • 1
  • query :可选,使用查询操作符指定查询条件
  • projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

pretty() 方法以格式化的方式来显示所有文档。

db.col.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '搜云库教程-专注于开发技术的研究与知识分享',
    url: 'http://www.souyunku.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
> db.col.find().pretty()
{
    "_id" : ObjectId("5a69f93598891b4abe9cc8cb"),
    "title" : "MongoDB 教程",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "搜云库教程-专注于开发技术的研究与知识分享",
    "url" : "http://www.souyunku.com",
    "tags" : [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes" : 100
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

MongoDB 与 RDBMS Where 语句比较

6.1 MongoDB AND 条件

MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。

语法格式如下:

> db.col.find({key1:value1, key2:value2}).pretty()
  • 1

实例

以下实例通过 by 和 title 键来查询 数据

> db.col.find({"by":"搜云库教程-专注于开发技术的研究与知识分享", "title":"MongoDB 教程"}).pretty()
{
    "_id" : ObjectId("5a69f93598891b4abe9cc8cb"),
    "title" : "MongoDB 教程",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "搜云库教程-专注于开发技术的研究与知识分享",
    "url" : "http://www.souyunku.com",
    "tags" : [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes" : 100
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

以上实例中类似于 WHERE 语句:WHERE by=’搜云库教程-专注于开发技术的研究与知识分享’ AND title=’MongoDB 教程’

6.2 MongoDB OR 条件

MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

>db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

实例

以下实例中,我们演示了查询键 by 值为 “搜云库教程-专注于开发技术的研究与知识分享” 或键 title 值为 MongoDB 教程 的文档。

> db.col.find({$or:[{"by":"搜云库教程-专注于开发技术的研究与知识分享"},{"title": "MongoDB 教程"}]}).pretty()
{
    "_id" : ObjectId("5a69f93598891b4abe9cc8cb"),
    "title" : "MongoDB 教程",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "搜云库教程-专注于开发技术的研究与知识分享",
    "url" : "http://www.souyunku.com",
    "tags" : [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes" : 100
}
> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

6.3 AND 和 OR 联合使用

以下实例演示了 AND 和 OR 联合使用,类似常规 SQL 语句为: 'where likes>50 AND (by = '搜云库教程-专注于开发技术的研究与知识分享' OR title = 'MongoDB 教程')'

> db.col.find({"likes": {$gt:50}, $or: [{"by": "搜云库教程-专注于开发技术的研究与知识分享"},{"title": "MongoDB 教程"}]}).pretty()
{
    "_id" : ObjectId("5a69f93598891b4abe9cc8cb"),
    "title" : "MongoDB 教程",
    "description" : "MongoDB 是一个 Nosql 数据库",
    "by" : "搜云库教程-专注于开发技术的研究与知识分享",
    "url" : "http://www.souyunku.com",
    "tags" : [
        "mongodb",
        "database",
        "NoSQL"
    ],
    "likes" : 100
}
> 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

7. MongoDB 条件操作符

条件操作符用于比较两个表达式并从MongoDB集合中获取数据。

MongoDB中条件操作符有:

(>) 大于 - $gt
(<) 小于 - $lt
(>=) 大于等于 - $gte
(<= ) 小于等于 - $lte
  • 1
  • 2
  • 3
  • 4

清空集合数据

db.col.remove({})
  • 1

插入以下数据

> db.col.insert({
    title: '测试数据200', 
    description: '关注公众号,搜云库,专注于开发技术的研究与知识分享',
    by: '搜云库',
    url: 'http://www.souyunku.com',
    tags: ['test'],
    likes: 200
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
> db.col.insert({
    title: '测试数据150', 
    description: '关注公众号,搜云库,专注于开发技术的研究与知识分享',
    by: '搜云库',
    url: 'http://www.souyunku.com',
    tags: ['test'],
    likes: 150
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
> db.col.insert({
    title: '测试数据100', 
    description: '关注公众号,搜云库,专注于开发技术的研究与知识分享',
    by: '搜云库',
    url: 'http://www.souyunku.com',
    tags: ['test'],
    likes: 100
})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

使用find()命令查看数据:

> db.col.find()
{ "_id" : ObjectId("5a6a083598891b4abe9cc8cc"), "title" : "测试数据200", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 200 }
{ "_id" : ObjectId("5a6a083e98891b4abe9cc8cd"), "title" : "测试数据150", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 150 }
{ "_id" : ObjectId("5a6a084498891b4abe9cc8ce"), "title" : "测试数据100", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 100 }
> 
  • 1
  • 2
  • 3
  • 4
  • 5

7.1 MongoDB (>) 大于操作符 - $gt

db.col.find({"likes" : {$gt : 100}})
  • 1

类似于SQL语句:

select * from col where likes > 100;
  • 1

输出结果

{ "_id" : ObjectId("5a6a083598891b4abe9cc8cc"), "title" : "测试数据200", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 200 }
{ "_id" : ObjectId("5a6a083e98891b4abe9cc8cd"), "title" : "测试数据150", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 150 }
>
  • 1
  • 2
  • 3

7.2 MongoDB(>=)大于等于操作符 - $gte

如果你想获取”col”集合中 “likes” 大于等于 100 的数据,你可以使用以下命令:

db.col.find({likes : {$gte : 100}})
  • 1

类似于SQL语句:

select * from col where likes >=100;
  • 1

输出结果:

{ "_id" : ObjectId("5a6a083598891b4abe9cc8cc"), "title" : "测试数据200", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 200 }
{ "_id" : ObjectId("5a6a083e98891b4abe9cc8cd"), "title" : "测试数据150", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 150 }
{ "_id" : ObjectId("5a6a084498891b4abe9cc8ce"), "title" : "测试数据100", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 100 }
>
  • 1
  • 2
  • 3
  • 4

7.3 MongoDB (<) 小于操作符 - $lt

如果你想获取”col”集合中 “likes” 小于 150 的数据,你可以使用以下命令:

db.col.find({likes : {$lt : 150}})
  • 1

类似于SQL语句:

select * from col where likes < 150;
  • 1

输出结果:

> db.col.find({likes : {$lt : 150}})
{ "_id" : ObjectId("5a6a084498891b4abe9cc8ce"), "title" : "测试数据100", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 100 }
> 
  • 1
  • 2
  • 3

7.4 MongoDB (<=) 小于操作符 - $lte

如果你想获取”col”集合中 “likes” 小于等于 150 的数据,你可以使用以下命令

db.col.find({likes : {$lte : 150}})
  • 1

类似于SQL语句:

select * from col where likes <= 150;
  • 1

输出结果:

> db.col.find({likes : {$lte : 150}})
{ "_id" : ObjectId("5a6a083e98891b4abe9cc8cd"), "title" : "测试数据150", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 150 }
{ "_id" : ObjectId("5a6a084498891b4abe9cc8ce"), "title" : "测试数据100", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 100 }
> 
  • 1
  • 2
  • 3
  • 4

7.5 MongoDB 使用 (<) 和 (>) 查询 - ltlt和gt

如果你想获取”col”集合中 “likes” 大于100,小于 200 的数据,你可以使用以下命令:

db.col.find({likes : {$lt :200, $gt : 100}})
  • 1

类似于SQL语句:

select * from col where likes>100 AND  likes<200;
  • 1

输出结果:

> db.col.find({likes : {$lt :200, $gt : 100}})
{ "_id" : ObjectId("5a6a083e98891b4abe9cc8cd"), "title" : "测试数据150", "description" : "关注公众号,搜云库,专注于开发技术的研究与知识分享", "by" : "搜云库", "url" : "http://www.souyunku.com", "tags" : [ "test" ], "likes" : 150 }
> 
  • 1
  • 2
  • 3

一些简写说明:

$gt -------- greater than  >

$gte --------- gt equal  >=

$lt -------- less than  <

$lte --------- lt equal  <=

$ne ----------- not equal  !=

$eq  --------  equal  =



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值