mongoDB常用命令

目录

 

       1 启动MongoDB服务

2 进入mongoDb

3 数据库

4 集合

5 文档

6 $type 匹配

7 limit与skip

8 排序

9 索引

10 聚合


1 启动MongoDB服务

MongoDB 目录的 bin 目录中执行 mongod.exe 文件

进入MongoDB\bin目录下:
mongod --dbpath D:\Program Files\mongodb\data\db  (D:\Program Files\mongodb\为mongoDB安装路径)

或者(初始化服务的情况)
启动MongoDB服务
net start MongoDB

关闭MongoDB服务
net stop MongoDB

2 进入mongoDb

运行 bin目录下mongo.exe

D:\Program Files\mongodb\bin\mongo.exe

3 数据库

3.1 show dbs 命令可以显示所有数据的列表

> show dbs
local  0.078GB
test   0.078GB

说明:
admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息

3.2 db 命令用于查看当前操作的文档(数据库)

> db
test
>

3.3 创建或切换库

数据库不存在则创建,存在则切换。需要有数据,show dbs才会显示。

命令:use <数据库>

例:
> use myLocal
switched to db myLocal
>

3.4 数据库插入数据

db.<数据库>.insert({"name":"1111"});该处会自动创建集合

例:
> db.myLocalhost.insert({"name":"1111"})
WriteResult({ "nInserted" : 1 })

3.5 删除当前数据库

db.dropDatabase() { "dropped" : "runoob", "ok" : 1 }

4 集合

4.1 创建集合

语法格式:
db.createCollection(name, options)

参数说明:

    name: 要创建的集合名称
    options: 可选参数, 指定有关内存大小及索引的选项

例:在 test 数据库中创建 runoob 集合,需要先切换到test数据库。

> use test
switched to db test
> db.createCollection("runoob")
{ "ok" : 1 }


或者:
> db.createCollection("mycol", { capped : true, autoIndexId : true, size : 
6142800, max : 10000 } )
{ "ok" : 1 }
>

4.2 查看已有集合

show collections 或者 show tables

> show collections
runoob
system.indexes

4.3 删除集合

db.<集合>.drop()

例:删除集合runoob

>db.runoob.drop()
true

5 文档

5.1 插入文档

db.<集合>.insert(document);集合不存在时会自动创建。

例:向col集合插入一个文档。

> db.col.insert({"title":"MongoDB","url":"路径"})))
WriteResult({ "nInserted" : 1 })

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

1.建文档document
> document=({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
});

2.文档document保存到集合col
db.col.insert(document) 或者 db.col.save(document)

5.2 查看集合里面的文档

db.<集合>.find()

例:col集合里面插入的两个文档。

> db.col.find()
{ "_id" : ObjectId("5ccfa7aba9e235c3e4d8e739"), "title" : "MongoDB" }
{ "_id" : ObjectId("5ccfa7e3a9e235c3e4d8e73a"), "title" : "MongoDB", "url" : "路径" }

5.3 更新集合

5.3.1 update()

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

例:

db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}})

5.3.2 save() 方法

save() 方法通过传入的文档来替换已有文档。语法格式如下:

db.collection.save(
   <document>,
   {
     writeConcern: <document>
   }
)
参数说明:

document : 文档数据。
writeConcern :可选,抛出异常的级别。

例:将id为5ccfa7aba9e235c3e4d8e739的文档更换如下。

>db.col.save({
    "_id" : ObjectId("5ccfa7aba9e235c3e4d8e739"),
    "title1" : "MongoDB111"
})

5.3.3 删除文档:

db.collection.remove(
   <query>,
   {
     justOne: <boolean>,
     writeConcern: <document>
   }
)

参数说明:

query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。

例:

>db.col.remove({'title':'MongoDB 教程'})
>

5.4 查询文档

db.collection.find(query, projection)

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

除了 find() 方法之外,还有一个 findOne() 方法,它只返回一个文档。 如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:

>db.col.find().pretty()

5.4.1条件语句查询

操作      格式                      范例                                              RDBMS中的类似语句
等于      {<key>:<value>}              db.col.find({"by":"菜鸟教程"}).pretty()        where by = '菜鸟教程'
小于      {<key>:{$lt:<value>}}       db.col.find({"likes":{$lt:50}}).pretty()      where likes < 50
小于或等于 {<key>:{$lte:<value>}}        db.col.find({"likes":{$lte:50}}).pretty()   where likes <= 50
大于      {<key>:{$gt:<value>}}       db.col.find({"likes":{$gt:50}}).pretty()    where likes > 50
大于或等于 {<key>:{$gte:<value>}}        db.col.find({"likes":{$gte:50}}).pretty()   where likes >= 50
不等于    {<key>:{$ne:<value>}}        db.col.find({"likes":{$ne:50}}).pretty()    where likes != 50

5.4.2AND

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

5.4.3 OR

>db.col.find(
   {
      $or: [
         {key1: value1}, {key2:value2}
      ]
   }
).pretty()

例:

db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()

6 $type 匹配

例:匹配title是string类型数据(String对应MongoDB类型中的2)

db.col.find({"title" : {$type : 2}})
或
db.col.find({"title" : {$type : 'string'}})

7 limit与skip

从NUMBER2+1开始,显示NUMBER1条,显示。默认skip为0;

db.COLLECTION_NAME.find().limit(NUMBER1).skip(NUMBER2)

例:指定返回title字段,

db.col.find({},{"title":1,_id:0}).limit(1).skip(1)

8 排序

其中 1 为升序排列,而 -1 是用于降序排列。

db.COLLECTION_NAME.find().sort({KEY:1})

例:likes降序

db.col.find({},{"title":1,_id:0}).sort({"likes":-1})

9 索引

9.1 创建索引

keys为数据字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1。options为参数。

db.collection.createIndex(keys, options)

例:

db.col.createIndex({"title":1,"description":-1})

9.2 查看集合索引

db.col.getIndexes()

9.3 查看集合索引大小

db.col.totalIndexSize()

9.4 删除集合所有索引

db.col.dropIndexes()

9.5 删除集合指定索引

db.col.dropIndex("索引名称")

10 聚合

10.1 aggregate()

db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)

聚合的表达式

$sum    计算总和。                       db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$sum : "$likes"}}}])
$avg    计算平均值                       db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$avg : "$likes"}}}])
$min    获取集合中所有文档对应值得最小值。   db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$min : "$likes"}}}])
$max    获取集合中所有文档对应值得最大值。   db.mycol.aggregate([{$group : {_id : "$by_user", num_tutorial : {$max : "$likes"}}}])
$push   在结果文档中插入值到一个数组中。    db.mycol.aggregate([{$group : {_id : "$by_user", url : {$push: "$url"}}}])
$addToSet   在结果文档中插入值到一个数组中,但不创建副本。 db.mycol.aggregate([{$group : {_id : "$by_user", url : {$addToSet : "$url"}}}])
$first  根据资源文档的排序获取第一个文档数据。 db.mycol.aggregate([{$group : {_id : "$by_user", first_url : {$first : "$url"}}}])
$last   根据资源文档的排序获取最后一个文档数据   db.mycol.aggregate([{$group : {_id : "$by_user", last_url : {$last : "$url"}}}])

10.2 管道

参考:

https://www.runoob.com/mongodb/mongodb-intro.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值