Windows下命令行操作MongoDB数据库详解

首页 » Python » Windows下命令行操作MongoDB数据库详解

我们前面通过相关教程都已经把MongoDB数据库配置好了,这篇文章就是通过命令行来操作MongoDB数据库,同时也可以让我们熟悉相关的命令。

还是老样子,先启动MongoDB服务,先进入安装目录的bin目录下输入mongod.exe --dbpath e:\mongodb\data\db,之后在重新打开一个命令窗口进入到bin目录下,输入mongo.exe即可成功连接MongoDB数据库了,接下来我们就开始操作一些基本的命令。

MongoDB 创建数据库

这里主要是记住操作命令:

 use zjj18sui  #创建数据库zjj18sui
switched to db zjj18sui
 show dbs #查看所有数据库
Chapter6  0.000GB
admin     0.000GB
config    0.000GB
local     0.000GB
test      0.000GB
> db.zjj18sui.insert({'name':'zjj'})
WriteResult({ "nInserted" : 1 })
> show dbs
Chapter6  0.000GB
admin     0.000GB
config    0.000GB
local     0.000GB
test      0.000GB
zjj18sui  0.000GB
>

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

在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档(记录),集合才会真正创建。

MongoDB 删除数据库

MongoDB 中使用 dropDatabase() 方法来删除数据库。

 show dbs #查看所有数据库
Chapter6  0.000GB
admin     0.000GB
config    0.000GB
local     0.000GB
test      0.000GB
zjj18sui  0.000GB
> use zjj18sui #切换到数据库 zjj18sui
switched to db zjj18sui
> db.dropDatabase() #执行删除命令
{ "dropped" : "zjj18sui", "ok" : 1 }
> show dbs #可以查看一下数据库是否删除成功
Chapter6  0.000GB
admin     0.000GB
config    0.000GB
local     0.000GB
test      0.000GB
>

MongoDB 创建集合

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

 use test #在 test 数据库中创建zjj18sui 集合
switched to db test
> db.createCollection('zjj18sui')
{ "ok" : 1 }
> show collections #使用 show collections 或 show tables 命令查看已有集合
name
zjj
zjj18sui
>

MongoDB 删除集合

MongoDB 中使用 drop() 方法来删除集合。如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false。show collections 或者show tables可以显示当前数据库中所有的集合

 use test
switched to db test
> show collections
name
zjj
zjj18sui
> db.name.drop()
true
> show collections
zjj
zjj18sui
>

MongoDB 插入文档

本章节中我们将向大家介绍如何将数据插入到 MongoDB 的集合中。文档的数据结构和 JSON 基本一样。
所有存储在集合中的数据都是 BSON 格式。BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。

MongoDB 使用 insert()save() 方法向集合中插入文档

 db.test.insert( {title:'ZJJ博客',
description:'ZJJ博客,有你想要的',
url:'e1yu',
tags:['专注学习,热爱生活'],
like:99999999} )

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

 show collections
test
> db.test.find()
{ "_id" : ObjectId("5dfdce2c18f211d7cb4650d1"), "title" : "ZJJ博客", "descriptio
n" : "ZJJ博客,有你想要的", "url" : "e1yu", "tags" : [ "专注学习,热爱生活
" ], "like" : 99999999 }

MongoDB 更新文档

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 :可选,抛出异常的级别。

MongoDB 使用 update() save() 方法来更新集合中的文档。

 show tables
test
> db.test.insert({title:'淘宝官网',description:'淘宝是最大的购物商城',url:'taoba
o.com',likes:99999})
WriteResult({ "nInserted" : 1 })
> show collections
test
> db.test.find()
{ "_id" : ObjectId("5dfdce2c18f211d7cb4650d1"), "title" : "ZJJ博客", "descriptio
n" : "ZJJ博客,有你想要的", "url" : "e1yu", "tags" : [ "专注学习,热爱生活
" ], "like" : 99999999 }
{ "_id" : ObjectId("5dfdd418729f873b9796bdc1"), "title" : "淘宝官网", "descripti
on" : "淘宝是最大的购物商城", "url" : "taobao.com", "likes" : 99999 }

接着我们通过 update() 方法来更新标题(title):

 db.test.update({'title':'ZJJ博客'},{$set:{'title':'ZJJ'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.test.find()
{ "_id" : ObjectId("5dfdce2c18f211d7cb4650d1"), "title" : "ZJJ", "description" :
 "ZJJ博客,有你想要的", "url" : "e1yu", "tags" : [ "专注学习,热爱生活" ],
 "like" : 99999999 }
{ "_id" : ObjectId("5dfdd418729f873b9796bdc1"), "title" : "淘宝官网", "descripti
on" : "淘宝是最大的购物商城", "url" : "taobao.com", "likes" : 99999 }
> db.test.find().pretty() #格式化,更加美观
{
        "_id" : ObjectId("5dfdce2c18f211d7cb4650d1"),
        "title" : "ZJJ",
        "description" : "ZJJ博客,有你想要的",
        "url" : "e1yu",
        "tags" : [
                "专注学习,热爱生活"
        ],
        "like" : 99999999
}
{
        "_id" : ObjectId("5dfdd418729f873b9796bdc1"),
        "title" : "淘宝官网",
        "description" : "淘宝是最大的购物商城",
        "url" : "taobao.com",
        "likes" : 99999
}
>

以上语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。

db.test.update({'title':'ZJJ博客'},{$set:{'title':'ZJJ'}},{multi:true})

MongoDB 删除文档

官方推荐使用 deleteOne() 和 deleteMany() 方法来移除集合中的数据。MongoDB数据更新可以使用update()函数。我们前先执行find()命令然后再移除文档,这样会更加直观。

 db.test.find().pretty()
{
        "_id" : ObjectId("5dfdce2c18f211d7cb4650d1"),
        "title" : "ZJJ",
        "description" : "ZJJ博客,有你想要的",
        "url" : "e1yu",
        "tags" : [
                "专注学习,热爱生活"
        ],
        "like" : 99999999
}
{
        "_id" : ObjectId("5dfdd418729f873b9796bdc1"),
        "title" : "淘宝官网",
        "description" : "淘宝是最大的购物商城",
        "url" : "taobao.com",
        "likes" : 99999
}
> db.test.deleteOne({title:'ZJJ'}) #移除一个title为ZJJ的文档
{ "acknowledged" : true, "deletedCount" : 1 }
> db.test.find()
{ "_id" : ObjectId("5dfdd418729f873b9796bdc1"), "title" : "淘宝官网", "descripti
on" : "淘宝是最大的购物商城", "url" : "taobao.com", "likes" : 99999 }
> db.test.find().pretty()
{
        "_id" : ObjectId("5dfdd418729f873b9796bdc1"),
        "title" : "淘宝官网",
        "description" : "淘宝是最大的购物商城",
        "url" : "taobao.com",
        "likes" : 99999
}

我只是使用了deleteOne()方法,这个只会移除一个文档,你可以自己练习使用deleteMany()来移除符合条件的全部文档

MongoDB 查询文档

MongoDB 查询文档使用 find() 方法,前面我们已经使用过了,只是没有带上参数而已,find() 方法以非结构化的方式来显示所有文档。如果你需要以易读的方式来读取数据,可以使用 pretty() 方法。除了 find() 方法之外,还有一个 findOne() 方法,它只返回一个文档。这里不再演示,自己练习😝。

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Windows下命令行操作MongoDB数据库详解》 发布于2019-12-21

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

7 + 4 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册