MongoDB学习

Posted 玉思盈蝶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB学习相关的知识,希望对你有一定的参考价值。

学习参考:

https://github.com/Perfect-Server-Swift-LearnGuide/PerfectLearnGuide/tree/master/第4章-MongoDB基础

http://wiki.jikexueyuan.com/project/mongodb/mongodb-create-database.html

一.安装:

安装这里就不记录了,上面参考传送门都有介绍很详细的哟。

二.启动MongoDB:

mkdir mongodb-data
cd mongodb-data/
mongod --dbpath=.

2016-10-24T16:52:49.330+0800 I NETWORK 
[initandlisten] waiting for connections on port 27017

如果出现等待连接信息,则表明启动成功.

mongo

如下图所示,表明启动成功。

三.检查数据库列表:

>show dbs
local     0.78125GB
test      0.23012GB

四.创建数据库:

>use mydb
switched to db mydb

五.查看当前操作的数据库:

>db
mydb

当数据库没有记录,会不显示改数据库的。需要插入至少一条记录

在 MongoDB 中,默认的数据库是 test,如果你没有创建任何数据库,那么集合就会保存在 test 数据库中。

六.删除数据库:

先指定删除的数据库,再删除。

>use mydb
switched to db mydb
>db.dropDatabase()
>{ "dropped" : "mydb", "ok" : 1 }
>

七.数据类型

MongoDB 支持如下数据类型:

  • String:字符串。存储数据常用的数据类型。在 MongoDB 中,UTF-8 编码的字符串才是合法的。
  • Integer:整型数值。用于存储数值。根据你所采用的服务器,可分为 32 位或 64 位。
  • Boolean:布尔值。用于存储布尔值(真/假)。
  • Double:双精度浮点值。用于存储浮点值。
  • Min/Max keys:将一个值与 BSON(二进制的 JSON)元素的最低值和最高值相对比。
  • Arrays:用于将数组或列表或多个值存储为一个键。
  • Timestamp时间戳。记录文档修改或添加的具体时间。
  • Object:用于内嵌文档。
  • Null:用于创建空值。
  • Symbol:符号。该数据类型基本上等同于字符串类型,但不同的是,它一般用于采用特殊符号类型的语言。
  • Date:日期时间。用 UNIX 时间格式来存储当前日期或时间。你可以指定自己的日期时间:创建 Date 对象,传入年月日信息。
  • Object ID:对象 ID。用于创建文档的 ID。
  • Binary Data:二进制数据。用于存储二进制数据。
  • Code:代码类型。用于在文档中存储 javascript 代码。
  • Regular expression:正则表达式类型。用于存储正则表达式。

八.插入数据:

> show dbs
admin  0.000GB
local  0.000GB
> use PersonDB
switched to db PersonDB
> db.PersonDB.insert({"name":"sisi"})
WriteResult({ "nInserted" : 1 })
> show dbs
PersonDB  0.000GB
admin     0.000GB
local     0.000GB
> 

九.删除数据:

>db.mycol.remove() // 删除所有的
>db.mycol.remove({\'title\':\'MongoDB Overview\'})  // 删除指定的记录

十.修改数据:

MongoDB 中的 update() 与 save() 方法都能用于更新集合中的文档。update() 方法更新已有文档中的值,而 save() 方法则是用传入该方法的文档来替换已有文档。

> db.PersonDB.update({\'name\':\'sisi\'},{$set:{\'name\':\'New MongoDB Tutorial\'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.PersonDB.find()
{ "_id" : ObjectId("5975afc186640f136a8e540e"), "name" : "New MongoDB Tutorial" }
>

save() 方法利用传入该方法的文档来替换已有文档。

>db.mycol.save(
   {
      "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point New Topic", "by":"Tutorials Point"
   }
)

十一.查询数据:

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

pretty() 方法用格式化方式显示结果,使用的是 pretty() 方法。

带条件的查找:

And条件:

> db.PersonDB.find({\'name\':\'New MongoDB Tutorial\'}).pretty()
{
    "_id" : ObjectId("5975afc186640f136a8e540e"),
    "name" : "New MongoDB Tutorial"
}

OR条件:

十二.设置字段的显示和不显示,1:表示显示;0:表示不显示。

>db.mycol.find({},{"title":1,_id:0})

十三.记录排序:

使用 1 和 -1 来指定排序方式,其中 1 表示升序,而 -1 表示降序。

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

如果不指定排序规则,sort() 方法将按照升序排列显示文档。

以上是关于MongoDB学习的主要内容,如果未能解决你的问题,请参考以下文章

IOS开发-OC学习-常用功能代码片段整理

java SpringRetry学习的代码片段

python 机器学习有用的代码片段

ios - Heroku 和 MongoDb 上的自定义解析服务器错误 3080:JSON 文本没有以数组或对象开头,并且允许未设置片段的选项

学习笔记:python3,代码片段(2017)

学习 PyQt5。在我的代码片段中找不到错误 [关闭]