monodb的安装与使用(二)

拜拜、爱过 提交于 2019-12-03 12:02:41

1. MongoDB 创建数据库

语法:

use DATABASE_NAME

 

 note:查看所有数据库使用show dbs

创建的空数据库 test并不在数据库的列表中,需要向 test数据库插入一些数据才能显示它。

 

 

 

2.MongoDB 删除数据库

MongoDB 删除数据库的语法

db.dropDatabase()

只有先进入相应的数据,执行drop操作才会把test 库数据删除。

 

3. MongoDB插入文档

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

db.COLLECTION_NAME.insert(document)

案例如下:

> use test
switched to db test
> db.col.insert({blog: '少年阿斌的博客',
...     description: '这真是有趣的博主',
...     by: 'wqbin',
...     url: 'https://www.cnblogs.com/wqbin/',
...     tags: ['学习', '睡觉', '写代码'],
...     job: "算法工程师"
... })
WriteResult({ "nInserted" : 1 })
> db.col.find()
{ "_id" : ObjectId("5dc02bb1e66db8e50e787f5d"), "blog" : "少年阿斌的博客", "description" : "这真是有趣的博主", "by" : "wqbin", "url" : "https://www.cnblogs.com/wqbin/", "tags" : [ "学习", "睡觉", "写代码" ], "job" : "算法工程师" }
>

col 是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。

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

> doc=({blog: '王阳的博客',
...     description: '这真是爱学习的博主',
...     by: 'wqbin',
...     url: 'https://www.cnblogs.com/wqbin/',
...     tags: ['机器学习', 'NLP', 'Fintect'],
...     job: "算法工程师"
... })-————>返回如下:
{
        "blog" : "王阳的博客",
        "description" : "这真是爱学习的博主",
        "by" : "wqbin",
        "url" : "https://www.cnblogs.com/wqbin/",
        "tags" : [
                "机器学习",
                "NLP",
                "Fintect"
        ],
        "job" : "算法工程师"
}
>
> db.col.insert(doc)
WriteResult({ "nInserted" : 1 })
>

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

3.2插入一条文档数据与插入多条文档数据

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

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

案例如下:

> var document = db.collection.insertOne({"title": "代码1"})
> document
{
        "acknowledged" : true,
        "insertedId" : ObjectId("5dc02d83e66db8e50e787f5f")
}
> db.collection.find()
{ "_id" : ObjectId("5dc02d83e66db8e50e787f5f"), "title" : "代码1" }
>

插入多条数据案例如下:

> var res = db.collection.insertMany([{"title": "代码2"}, {'title': "代码3"}])
> res
{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("5dc02dfae66db8e50e787f60"),
                ObjectId("5dc02dfae66db8e50e787f61")
        ]
}
> db.collection.find()
{ "_id" : ObjectId("5dc02d83e66db8e50e787f5f"), "title" : "代码1" }
{ "_id" : ObjectId("5dc02dfae66db8e50e787f60"), "title" : "代码2" }
{ "_id" : ObjectId("5dc02dfae66db8e50e787f61"), "title" : "代码3" }

并发现可以重复插入还不报错:

 

 

 

4. MongoDB 删除文档

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

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

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

remove() --过时
deleteOne()
deleteMany() 

如删除集合下全部文档:

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

删除 title 等于 "代码" 的全部文档

db.collection.deleteMany({ title : "代码"})

删除 title 等于 "代码" 的一个文档,如果多条则按时间删除最久的

db.col.deleteOne({"title":"代码3"})
{ "acknowledged" : true, "deletedCount" : 1 }

 

5. MongoDB 查询文档

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

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

语法

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

MongoDB 查询数据的语法格式如下(pretty() 方法以格式化显示):

 

 MongoDB 与 RDBMS Where 语句比较

 

 

6.1 MongoDB AND 条件

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

语法格式如下:

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!