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 条件。
语法格式如下: