学习笔记之MongoDB基础命令

  1. 1.选择数据库

命令: use DATEBASE_NAME(数据库名)
作用:若没有该数据库则直接创建,若有则切换数据库
执行效果如下:

use runoob
switched to db runoob
db
runoob

  1. 2.查看当前所有的数据库

命令:show dbs
执行效果如下:

show dbs
ad 0.000GB
admin 0.000GB
config 0.000GB
local 0.000GB
mycol 0.000GB
mycol001 0.000GB
name 0.000GB
nb 0.000GB


 1. **3.删除数据库操作**
命令:db.dropDatabase()
执行效果:

db.dropDatabase()
{ “dropped” : “name”, “ok” : 1 }

 **4.插入文档**

命令:db.COLLECTION_NAME.insert(document)
执行效果:

db.col.insert({name:”浪奇”,
年龄:”24”,
爱好:”飞啊飞”
})

可直接定义变量document

document=({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.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据

注意:3.2 版本后还有以下几种语法可用于插入文档:
 db.collection.insertOne():向指定集合中插入一条文档数据
 db.collection.insertMany():向指定集合中插入多条文档数据
插入单条数据

var document=db.col.insertOne({“aa”:9})
document
{
“acknowledged” : true,
“insertedId” : ObjectId(“5a3761ac667e4339fe9b3a31”)
}

##### 插入多条数据
>

var res = db.collection.insertMany([{“b”: 3}, {‘c’: 4}])

res
{
“acknowledged” : true,
“insertedIds” : [
ObjectId(“571a22a911a82a1d94c02337”),
ObjectId(“571a22a911a82a1d94c02338”)
]
}

5.更新已有文档
命令: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 :可选,抛出异常的级别。

执行效果:`
######查询集合内容
> db.col.find().pretty()                                          
{
        "_id" : ObjectId("5a375db0667e4339fe9b3a30"),
        "title" : "MongoDB",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "菜鸟教程",
        "url" : "http://www.runoob.com",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
#####修改某一字段
> db.col.update({title:"MongoDB"},{$set:{title:"MongoDB   修改此字段"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
#####再次查询集合内容
> db.col.find().pretty()
{
        "_id" : ObjectId("5a375db0667e4339fe9b3a30"),
        "title" : "MongoDB   jjdfdjivnjds",
        "description" : "MongoDB 是一个 Nosql 数据库",
        "by" : "菜鸟教程",
        "url" : "http://www.runoob.com",
        "tags" : [
                "mongodb",
                "database",
                "NoSQL"
        ],
        "likes" : 100
}
在3.2版本开始,MongoDB提供以下更新集合文档的方法:
  db.collection.updateOne() 向指定集合更新单个文档
  db.collection.updateMany() 向指定集合更新多个文档`
首先我们在test集合里插入测试数据
>use test
>db.col.insert( [
{"name":"abc","age":"25","status":"zxc"},
{"name":"dec","age":"19","status":"qwe"},
{"name":"asd","age":"30","status":"nmn"},
] )
更新单个文档
> db.test_collection.updateOne({"name":"abc"},{$set:{"age":"28"}})
{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }
> db.test_collection.find()
{ "_id" : ObjectId("59c8ba673b92ae498a5716af"), "name" : "abc", "age" : "28", "status" : "zxc" }
{ "_id" : ObjectId("59c8ba673b92ae498a5716b0"), "name" : "dec", "age" : "19", "status" : "qwe" }
{ "_id" : ObjectId("59c8ba673b92ae498a5716b1"), "name" : "asd", "age" : "30", "status" : "nmn" }
>
更新多个文档
> db.test_collection.updateMany({"age":{$gt:"10"}},{$set:{"status":"xyz"}})
{ "acknowledged" : true, "matchedCount" : 3, "modifiedCount" : 3 }
> db.test_collection.find()
{ "_id" : ObjectId("59c8ba673b92ae498a5716af"), "name" : "abc", "age" : "28", "status" : "xyz" }
{ "_id" : ObjectId("59c8ba673b92ae498a5716b0"), "name" : "dec", "age" : "19", "status" : "xyz" }
{ "_id" : ObjectId("59c8ba673b92ae498a5716b1"), "name" : "asd", "age" : "30", "status" : "xyz" }
>

WriteConcern.NONE:没有异常抛出
WriteConcern.NORMAL:仅抛出网络错误异常,没有服务器错误异常
WriteConcern.SAFE:抛出网络错误异常、服务器错误异常;并等待服务器完成写操作。
WriteConcern.MAJORITY: 抛出网络错误异常、服务器错误异常;并等待一个主服务器完成写操作。
WriteConcern.FSYNC_SAFE: 抛出网络错误异常、服务器错误异常;写操作等待服务器将数据刷新到磁盘。
WriteConcern.JOURNAL_SAFE:抛出网络错误异常、服务器错误异常;写操作等待服务器提交到磁盘的日志文件。
WriteConcern.REPLICAS_SAFE:抛出网络错误异常、服务器错误异常;等待至少2台服务器完成写操作。

删除文档

如删除集合下全部文档:
db.colletion_name.deleteMany({})
删除 status 等于 A 的全部文档:
db.colletion_name.deleteMany({ status : “A” })
删除 status 等于 D 的一个文档:
db.colletion_name.deleteOne( { status: “D” } )。

查询文档

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

你可能感兴趣的:(mongodb)