MongoDB基本用法

Mongo使用

要管理数据库,必须先开机,开机使用mongod --dbpath c:\mongo

管理数据库:mongo  (一定要在新的cmd中输入)

常用命令:

> show dbs    -- 查看数据库列表

> use admin   --创建admin数据库,如果存在admin数据库则使用admin数据库

> db   ---显示当前使用的数据库名称

> db.getName()  ---显示当前使用的数据库名称

> db.dropDatabase()  --删当前使用的数据库

> db.repairDatabase()  --修复当前数据库

> db.version()   --当前数据库版本

> db.getMongo()  --查看当前数据库的链接机器地址 

> db.stats() 显示当前数据库状态,包含数据库名称,集合个数,当前数据库大小 ...

> db.getCollectionNames()   --查看数据库中有那些个集合(表)

> show collections    --查看数据库中有那些个集合(表)

> db.person.drop()  --删除当前集合(表)person

>cls  --清屏

一、创建集合

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

    参数说明:

name: 要创建的集合名称

options: 可选参数, 指定有关内存大小及索引的选项

options 可以是如下参数:

字段

类型

描述

capped

布尔

(可选)如果为 true,则创建固定集合。固定集合是指有着固定大小的集合,

当达到最大值时,它会自动覆盖最早的文档。
当该值为 true 时,必须指定 size 参数。

autoIndexId

布尔

(可选)如为 true,自动在 _id 字段创建索引。默认为 false

size

数值

(可选)为固定集合指定一个最大值(以字节计)。
如果 capped true,也需要指定该字段。

max

数值

(可选)指定固定集合中包含文档的最大数量。

         在插入文档时,MongoDB 首先检查固定集合的 size 字段,然后检查 max 字段

 

  1. test 数据库中创建 lichtest集合
  2. 如果要查看已有集合,可以使用 show collections 命令:

 

         下面是带有几个关键参数的 createCollection() 的用法:

创建固定集合 mycol,整个集合空间大小 6142800 KB, 文档最大个数为 10000 个。

        

MongoDB 中,你不需要创建集合。当你插入一些文档时,MongoDB 会自动创建集合。

二、删除集合

         语法格式:db.collection.drop()

         参数说明:无

         返回值:如果成功删除选定集合,则 drop() 方法返回 true,否则返回 false

三、插入数据:insert()

MongoDB 使用 insert() 或 save() 方法向集合中插入文档,插入数据,随着数据的插入,数据库创建成功了,集合也创建成功了。

语法如下:db.COLLECTION_NAME.insert(document)

实例:

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

查看已插入文档:

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

 

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

 

MongoDB接入Javascrip风格语法,forwhilenexthasNextforEachtoArrayfindOnelimit

四、查找数据find()

MongoDB 查询数据的语法格式如下:

                   db.collection.find(query, projection)

        

参数:

query :可选,使用查询操作符指定查询条件

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

         pretty() 方法以格式化的方式来显示所有文档

 

1.大于、小于、等于

    如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

        

操作

格式

范例

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

 

         实例:db.student.find({"score.yuwen":{$gt:50}});

 

2. MongoDB AND 条件

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

语法格式如下

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

    实例:

         以上实例中类似于 WHERE 语句:WHERE by='菜鸟教程' AND title='lich'

 

3. MongoDB OR 条件

MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

                   db.col.find(

        {

             $or: [

              {key1: value1}, {key2:value2}

             ]

         }

).pretty()

 

    实例:

 

4. AND 和 OR 联合使用

以下实例演示了 AND OR 联合使用,类似常规 SQL 语句为: 'where likes>50 AND (by = '菜鸟教程' OR title = 'lich')'

 

5.循环用法

1、while:作为程序员应该都不陌生他是个循环。

2、hasNext: cursor集合遍历,是否还有数据。

3、printjson:输出集合中的文档

4、next:当前文档,并向下遍历

 

 

6.Sort

在 MongoDB 中使用 sort() 方法对数据进行排序,sort() 方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序排列,而 -1 是用于降序排列

    sort()方法基本语法如下所示

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

         实例:

注意:skip(), limilt(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()

7.limit与skip

limit()方法基本语法如下所示

db.COLLECTION_NAME.find().limit(NUMBER)

         实例:

skip() 方法脚本语法格式如下:

              db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)

实例:

:skip()方法默认参数为 0 

 

 

五、修改数据: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 :可选,抛出异常的级别。

 

       实例:

             

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

 

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

六、Save()方法

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

db.collection.save(

   <document>,

   {

     writeConcern: <document>

   }

)

       参数说明:

document : 文档数据。

writeConcern :可选,抛出异常的级别

 

 

修改里面还有查询条件。你要该谁,要告诉mongo

查找名字叫做小明的,把年龄更改为16岁:

db.student.update({"name":"小明"},{$set:{"age":16}});

 

查找数学成绩是70,把年龄更改为33岁:

db.student.update({"score.shuxue":70},{$set:{"age":33}});

 

完整替换,不出现$set关键字了:

db.student.update({"name":"小明"},{"name":"大明","age":16});

 

七、删除数据:remove()

       remove() 方法的基本语法格式如下所示:

                   db.collection.remove(

            <query>,

            <justOne>

)

       如果你的 MongoDB 是 2.6 版本以后的,语法格式如下:

db.collection.remove(

   <query>,

   {

     justOne: <boolean>,

     writeConcern: <document>

   }

)

参数说明:

query :(可选)删除的文档的条件。

justOne : (可选)如果设为 true 或 1,则只删除一个文档。

writeConcern :(可选)抛出异常的级别。

如果你只想删除第一条找到的记录可以设置 justOne 为 1,如下所示:

                   db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)

    实例:

        db.restaurants.remove( { "title": "lich" }, { justOne: true } )

 

       如果你想删除所有数据,可以使用以下方式(类似常规 SQL truncate 命令)

              db.col.remove({})

 

   

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

       如删除集合下全部文档:

              db.inventory.deleteMany({})

 

       删除 status 等于 A 的全部文档:

              db.inventory.deleteMany({ status : "A" })

 

       删除 status 等于 D 的一个文档:

                   db.inventory.deleteOne( { status: "D" } )

 

八、创建索引

         createIndex()方法基本语法格式如下所示:

              db.collection.createIndex(keys, options)

        

语法中 Key 值为你要创建的索引字段,1 为指定按升序创建索引,如果你想按降序来创建索引指定为 -1 即可。

       实例:

       createIndex() 方法中你也可以设置使用多个字段创建索引(关系型数据库中称作复合索引)

       实例:

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值