【冠亚体育手机网站】Mongodb极简实践

MongoDB 极简施行入门

1. 怎么用MongoDB?

价值观的微管理器应用繁多使用关系型数据库来存款和储蓄数据,比方我们只怕纯熟的MySql,
Sqlite等等,它的特性是数码以表格(table)的形式积攒起来的。数据库由一张张排列整齐的报表构成,就象是一个Excel表单同样,各种表格会有多数列,比方三个学员消息表,也许带有学号、姓名、性别、入学年份、高等学园统一招生考试战绩、籍贯等等。而表格的每一排,则是二个个学生的求实消息。在店肆级应用和前网络时期,关系型数据库大致是不二选项。关系型数据库的风味是有齐整划一的团伙,很有益对数据开展描述、插入、找出。

想像有多少个古板的网络服装集团吧,它的要害的数码大概是积累在一张叫products的表单里,表单大概带有那么些列:商品编号(ID)、名称(Name)、厂家(brand)、主目录(cate)、子目录(sub-cat)、零售卖价格(price)、是或不是降价(promotion)等等。如若有贰个顾客想要查找全部价格低于300元的正在减价的鞋子的编号和称号,则足以施行类似于以下的SQL语句:

SELECT ID, name FROM products WHERE cate='shoes' AND price<300 and AND promotion=true;

SQL具有了有力了的深度查询才能,能餍足美妙绝伦的询问供给。而如若要对数码举办增多和删除,花费也是非常的低的。这么些是SQL的优势之一,
但随着互连网的勃兴以及数额格局的多种化,莱芜八稳的SQL表单在局地领域渐渐显现出它的缺点。让大家透过二个例子来注明。思索一个博客后台系统,假诺大家用关系型数据库为每篇博客(article)建一个表单的话,这些表单差相当少会席卷以下那个列:

ID Title Description Author Content Likes
A_1 Title1 Political Article Joe Content 1 12
A_2 Title2 Humorous Story Sam Content 2 50

此刻候用SQL数据库来囤积是非常有益的,但一旦我们要位每篇小说增多商量成效,会意识每篇小说恐怕要多篇商量,况且那些数量是动态变化的,何况每篇批评还包罗有个别项内容:商议的人、顶牛的命宫、以至评价内容。那时候要将那几个剧情都塞进上述的非常表,就显得很困难。常常的做法是为评价(comment)单独建二个表:

ID Author Time Content Article
C_1 Anna 2014-12-26 08:23 Really good articles! A_1
C_2 David 2014-12-25 09:30 I like it! A_1

恍如地,每篇作品恐怕会有几多标签(tags)。标签本身又是三个表单:

ID Category Tags Content Article
T_1 Anna 2014-12-26 08:23 Really good articles! A_1
T_2 David 2014-12-25 09:30 I like it! A_2

而博客的报表则要经过foreign
key跟那个相关联的表格联系起来(大概还包涵笔者、出版社等其余表格)。那样一来,当大家做询问的时候,比方说,“搜索批评数不菲于3的标签为‘政治争论’的作者为萨姆的篇章”,就能够涉嫌到复杂的跨表查询,要求多量运用join话语。这种跨表查询不唯有收缩了查询速度,并且那一个语句写起来也不简单。

那么,如若用MongoDB数据库来达成,能够什么铺排数据模型呢?很简短,像上边那样[1]:

 _id: POST_ID
   title: TITLE_OF_POST, 
   description: POST_DESCRIPTION,
   author: POST_BY,
   tags: [TAG1, TAG2, TAG3],
   likes: TOTAL_LIKES, 
   comments: [  
      {
         user:'COMMENT_BY',
         message: TEXT,
         dateCreated: DATE_TIME,
      },
      {
         user:'COMMENT_BY',
         message: TEXT,
         dateCreated: DATE_TIME,
      }
   ]

在MongoDB里,每篇博客小说以三个文书档案(document)的样式保存起来,而文档内部含有了广大档案的次序,举例title tags等,每二个品类都是key-value的情势,即有三个门类的名字,比如title,以至它的值TITLE_OF_POST。而重大的是,贰个key能够有四个values,他们用[]括起来。

这种“宽松”的数量存款和储蓄格局特别灵活,MongoDB不限制各类key对应的values的数额。譬如部分小说没有切磋,则它的值正是一个空集,完全寻常;有的文章商量很多,也能够特别制地插入。越来越灵敏的是,MongoDB不须要同三个会集(collection,也正是SQL的table)里面包车型客车两样document有一致的key,譬喻除了上述这种文书档案协会,有的文档所表示的篇章恐怕未有likes这么些项目,再比方说一些著作大概有越来越多的类别,比方只怕还会有dislikes等等。这一个区别的文档都得以灵活地囤积在同三个聚焦下,何况查询起来也非常轻易,因为都在一个文书档案里,不用进行各样跨文档查询。而这种MongoDB式的囤积也可能有益于了数据的维护,对于一篇博客小说来讲,全数的相关数据都在这么些document里面,不用去考虑二个数码操作须求involve多少个表格。

自然,除了上述的长处,MongoDB还应该有大多其他优势,例如MongoDB的数码是用JSON(Javascript
Object
Notation)存款和储蓄的(正是地点的这种key-value的款型),而大概具有的web应用都以基于Javascript的。由此,存款和储蓄的多寡和行使的数据的格式是中度一致的,不需通过转变。更加多的独到之处能够查看:[2]。

2. 有关那篇文章

本条极简教程,可能说笔记,而不是一个蒙面MongoDB方方面面包车型大巴学科。所谓极简的野趣,正是只选用那一个最要紧、最常用的剧情开展基于实例的介绍,进而让读者可以在最短的时日内比不慢上手,並且能八面驶风地举行继续的吃水的读书。

具体地说,这些科目标特色是:

  • 不求周到,只求实用。只覆盖最基本的片段;
  • 以豁达例子为导向;
  • 另一方面读书一边入手操作的话,大概只须求2钟头的年华;

读书那篇小说不供给有专门的功底,但最佳精通数据库的基本概念,借使本身熟稔SQL这就越来越好啊。

3. 安装与碰到

MongoDB能够在Windows、Linux、Mac OS
X等主流平台运维,並且下载和安装特别简单,非平常的温度馨。那篇文书档案的例子选用MongoDB
2.6版本,均在OS X测试过,有丰饶的说辞相信,在任何平台也能胜利运行。

Windows的安装和装置能够参照:;

Linux的安装和安装能够参照:;

Mac OS X下的安装和安装:

    1. 在 下载符合你的Mac的MongoDb;
  • 2.
    下载获得的文书是贰个zip文件,解压,然后放到你想到的文本夹,举个例子/Users/Steven/MongoDB;
    1. 始建二个您喜爱的文本夹来存储你的数量,比方/User/Steven/myData;
    1. 展开Terminal,cd到2里面拾壹分文件夹/Users/Steven/MongoDB,再cd bin;
    1. 输入./mongod –dbpath /User/Steven/myData,等到出现类似“waiting
      for connections on port
      27017”,表明MongoDB服务器已架设好,而数据将积攒在myData里面;
    1. 新开发一个Terminal, cd
      /Users/Steven/MongoDB/bin,然后运营./mongo;顺遂的话它将出现贰个interactive
      shell令你进行各个操作,而你的数目将积累在myData里

一经上述的次第步骤都运作顺畅,就能够跳到下一节啦。

4. 创办集合和删除集结

在上一节试行完步骤6后,你会看出命令行里显示:connecting to: test,这里的test是私下认可的数据库。这里大家得以新建二个数据库。在命令行里打入:

use tutorial

与此相类似就新建了四个叫作tutorial的数据库。你能够实践

show databases

来显示当前的数据库。但是那时由于我们的新数据库是空的,所以会显得类似那样的:

admin  (empty)
local  0.078GB

大家试着往我们的数据Curry增添叁个会合(collection),MongoDB里的成团和SQL里面包车型大巴表格是近乎的:

db.createCollection('author')

顺手的话会呈现:

{ "ok" : 1 }

意味着创立成功。

你能够再回头试行:

show databases

那时候大家的tutorial群集已经位列此中。你可以再进行

show collections

可以看到创立的集合author也在中间。

咱们临时无需author这些集合,所以大家得以因而实践:

db.author.drop()

来将其除去。那时候你再试行show collections,就再也看不到大家的author了。

这一节要记住的点首要唯有叁个:群集(collection)类似于SQL的表格(table),类似于Excel的一个个报表。

5. 插入

设想五个精简版的“豆瓣电影”。大家须要创设三个数据库,来累积每部电影的音信,电影的新闻富含:

  • 影片名字
  • 导演
  • 主角(恐怕多个)
  • 品类标签(也许四个)
  • 公开放映日期
  • 爱好人数
  • 不欣赏人数
  • 客商评价(也许七个)

明显我们需求先创造一个叫电影的汇集:

db.createCollection('movie')

接下来,大家就能够插入数据了:

db.movie.insert(
 {
   title: 'Forrest Gump', 
   directed_by: 'Robert Zemeckis',
   stars: ['Tom Hanks', 'Robin Wright', 'Gary Sinise'],
   tags: ['drama', 'romance'],
   debut: new Date(1994,7,6,0,0),
   likes: 864367,
   dislikes: 30127,
   comments: [  
      {
         user:'user1',
         message: 'My first comment',
         dateCreated: new Date(2013,11,10,2,35),
         like: 0 
      },
      {
         user:'user2',
         message: 'My first comment too!',
         dateCreated: new Date(2013,11,11,6,20),
         like: 0 
      }
   ]
}
)

请细心,这里插入数据在此以前,咱们并不须要先注脚movie这么些会集里面有哪些项目。大家直接插入就足以了~这点和SQL不平等,SQL必需先声澳优(Karicare)个table里面有怎么样列,而MongoDB无需。

把地点的例子复制进命令行应该能够顺遂运作,但本人猛烈提出你手动打一下,大概输入一部你协和喜欢的电影和电视。insert操作有几点供给留意:

    1. 差别key-value需求用逗号隔离,而key:value中间是用冒号;
  • 2.
    只要叁个key有多少个value,value要用[]。哪怕当前唯有一个value,也助长[]以备后续的增加;
    1. 整个“数据块”要用{}括起来;

即使你在insert自此见到WriteResult({ "nInserted" : 1 }),表明写入成功。

这年你能够用查询的方法来回到数据库中的数据:

db.movie.find().pretty()

这里find()里面是空的,表明大家不做限定和筛选,类似于SQL未有WHERE言辞相同。而pretty()出口的是经格式美化后的数额,你能够团结试试未有pretty()会怎样。

留神观看find()的结果,你会意识多了一个叫'_id'的东西,那是数据库自动创造的贰个ID号,在同一个数据Curry,各类文档的ID号都以见仁见智的。

咱俩也能够何况输入八个数据:

db.movie.insert([
 {
   title: 'Fight Club', 
   directed_by: 'David Fincher',
   stars: ['Brad Pitt', 'Edward Norton', 'Helena Bonham Carter'],
   tags: 'drama',
   debut: new Date(1999,10,15,0,0),
   likes: 224360,
   dislikes: 40127,
   comments: [  
      {
         user:'user3',
         message: 'My first comment',
         dateCreated: new Date(2008,09,13,2,35),
         like: 0 
      },
      {
         user:'user2',
         message: 'My first comment too!',
         dateCreated: new Date(2003,10,11,6,20),
         like: 14 
      },
      {
         user:'user7',
         message: 'Good Movie!',
         dateCreated: new Date(2009,10,11,6,20),
         like: 2
      }
   ]
},
{
   title: 'Seven', 
   directed_by: 'David Fincher',
   stars: ['Morgan Freeman', 'Brad Pitt',  'Kevin Spacey'],
   tags: ['drama','mystery','thiller'],
   debut: new Date(1995,9,22,0,0),
   likes: 134370,
   dislikes: 1037,
   comments: [  
      {
         user:'user3',
         message: 'Love Kevin Spacey',
         dateCreated: new Date(2002,09,13,2,35),
         like: 0 
      },
      {
         user:'user2',
         message: 'Good works!',
         dateCreated: new Date(2013,10,21,6,20),
         like: 14 
      },
      {
         user:'user7',
         message: 'Good Movie!',
         dateCreated: new Date(2009,10,11,6,20),
         like: 2
      }
   ]
}
])

顺遂的话会呈现:

BulkWriteResult({
    "writeErrors" : [ ],
    "writeConcernErrors" : [ ],
    "nInserted" : 2,
    "nUpserted" : 0,
    "nMatched" : 0,
    "nModified" : 0,
    "nRemoved" : 0,
    "upserted" : [ ]

外界大家中标地插入了多少个数据。注意批量插入的格式是如此的:db.movie.insert([{ITEM1},{ITEM2}])。几部电影的外围需求用[]括起来。

请小心,即便collection的插入没有须要先注明,但发表一样意思的key,名字要平等,举例,假设大家在三个文书档案里用directed_by来表示发行人,则在另外文档也要保全一致的名字(并非director等等的)。不相同的名字不是不得以,能力上完全可行,但会给查询和更新带来困难。

好了,到这里,大家就有了二个叫tutorial的数据库,里面有四个叫movie的集纳,而movie里面有几个记录。接下来大家就足以对其张开询问了。

6. 查询

在上一节大家早已触发到最轻易易行的询问db.movie.find().pretty()。MongoDB援助五颜六色的纵深查询功用。先来三个最简易的例证,寻找大卫芬奇(大卫Fincher)出品人的有着电影:

db.movie.find({'directed_by':'David Fincher'}).pretty()

将再次来到《搏击俱乐部》和《七宗罪》两部影片。这种找出和SQL的WHERE言语是很相像的。

也能够安装三个规格。举个例子找寻大卫芬奇编剧的, 摩尔根Freeman主角的电影:

db.movie.find({'directed_by':'David Fincher', 'stars':'Morgan Freeman'}).pretty()

此处四个尺码之间,是AND的涉及,独有同一时间满足七个标准化的影视才会被输出。同理,能够安装多个的标准,不赘述。

法规之间也能够是或的涉嫌,例如寻觅罗布inWhyet或MorganFreeman主角的录像:

db.movie.find(
{
  $or: 
     [  {'stars':'Robin Wright'}, 
        {'stars':'Morgan Freeman'}
     ]
}).pretty()

潜心那当中稍显复杂的种种括号。

还足以设置三个范围的检索,比如寻找50万人之上赞的录制:

db.movie.find({'likes':{$gt:500000}}).pretty()

无差别于要小心略复杂的括号。注意,在这几个查询里,key的单引号都是可选的,也便是说,上述讲话也足以写成:

db.movie.find({likes:{$gt:500000}}).pretty()

看似地,少于二八万人赞的电影:

db.movie.find({likes:{$lt:200000}}).pretty()

类似的运算符还会有:$let:小于或等于;$get:大于或等于;$ne:不等于。

细心,对于包涵多个值的key,同样可以用find来询问。举个例子:

db.movie.find({'tags':'romance'})

将回来《阿甘正传》,即使其标签既有romance,又有drama,但如果符合一个就可以了。

一旦您方便地领略重回的结果唯有贰个,也得以用findOne:

db.movie.findOne({'title':'Forrest Gump'})

借使有多少个结果,则会按磁盘存款和储蓄顺序重回第三个。请留神,findOne()自带pretty情势,所以不能再加pretty(),将报错。

假定结果许多而你只想显示中间有的,能够用limit()skip(),前者指明输出的个数,后面一个指明从第三个结实伊始数。比方:

db.movie.find().limit(2).skip(1).pretty()

则跳过第一部,从第二部先河选拔两部影片。

7. 有的查询

第五节的时候大家讲了find的用法,但对此相符条件的条规,大家都是再次来到整个JSON文件的。那类似于SQL里面包车型大巴SELECT *。不经常,大家供给的,仅仅是某些数目,这一年,find的部分查询的作用就派上用场了。先来看贰个例证,重临tags为drama的影片的名字和首映日期。

db.movie.find({'tags':'drama'},{'debut':1,'title':1}).pretty()

数据库将重返:

{
    "_id" : ObjectId("549cfb42f685c085f1dd47d4"),
    "title" : "Forrest Gump",
    "debut" : ISODate("1994-08-05T16:00:00Z")
}
{
    "_id" : ObjectId("549cff96f685c085f1dd47d6"),
    "title" : "Fight Club",
    "debut" : ISODate("1999-11-14T16:00:00Z")
}
{
    "_id" : ObjectId("549cff96f685c085f1dd47d7"),
    "title" : "Seven",
    "debut" : ISODate("1995-10-21T16:00:00Z")
}

此地find的第二个参数是用来支配输出的,1代表要赶回,而0则意味着不回去。默许值是0,但_id是见仁见智,因而一旦你不想出口_id,须要显式地宣称:

db.movie.find({'tags':'drama'},{'debut':1,'title':1,'_id':0}).pretty()

8. 更新

广大景观下您供给更新您的数据库,举个例子有人对某些电影点了个赞,那么您供给创新相应的数据库。例如有人对《七宗罪》点了个赞,而它自然的赞的个数是134370,那么你需求更新到134371。可以这么操作:

db.movie.update({title:'Seven'}, {$set:{likes:134371}})

首先个大括号里评释要挑选的对象,第二个标识要转移的数目。请小心上述的操作极度不现实,因为你首先要知道前边的数字是有些,然后加一,但通常你不读取数据库的话,是不会知晓这么些数(134370)的。MongoDB提供了一种便利的措施,能够对现成条款举行增量操作。假如又有人对《七宗罪》点了五个赞,则能够:

db.movie.update({title:'Seven'}, {$inc:{likes:2}})

尽管您询问的话,会发掘点赞数变为134373了,这里用的是$inc。除了增量更新,MongoDB还提供了累累心灵手巧的立异选项,具体能够看:

瞩目要是有多部适合供给的影视。则暗中同意只会更新第二个。如若要七个同不时候立异,要设置{multi:true},像上边那样:

db.movie.update({}, {$inc:{likes:10}},{multi:true})

享有电影的赞数都多了10.

只顾,以上的更新操作会替换掉原本的值,所以如果您是想在本来的值得基础上加码三个值的话,则应该用$push,举例,为《七宗罪》增多二个popular的tags。

db.movie.update({'title':'Seven'}, {$push:{'tags':'popular'}})

你会开采《七宗罪》未来有八个标签:

    "tags" : [
        "drama",
        "mystery",
        "thiller",
        "popular"
    ],

9. 删除

删除的句法和find很平常,举例,要删减标签为romance的电影,则:

db.movie.remove({'tags':'romance'})

考虑到大家数据库条目款项至极罕见,就不提出你推行那条命令了~

小心,上边的例子会删除全部标签包罗romance的影片。倘若您只想删除第多少个,则

db.movie.remove({'tags':'romance'},1)

若是不加任何限制:

db.movie.remove()

会删除movie那一个群集下的兼具文书档案。

10. 索引和排序

为文档中的一些key加上索引(index)能够加快搜索速度。那一点轻易理解,固然未有未有目录,大家要寻觅名称为Seven的影片,就务须在具备文书档案里各种搜索。而一旦对名字那些key加上索引值,则影片名那一个字符串和数字建设构造了炫丽,那样在搜寻的时候就能够快相当多。排序的时候也是这么,不赘述。MongoDB里面为有些key加上索引的不二等秘书籍非常的粗略,比方大家要对编剧这些key加索引,则足以:

db.movie.ensureIndex({directed_by:1})

此地的1是升序索引,假使要降序索引,用-1。

MongoDB补助对出口举办排序,举例按名字排序:

db.movie.find().sort({'title':1}).pretty()

同样地,1是升序,-1是降序。默认是1。

db.movie.getIndexes()

将赶回全数索引,富含其名字。

db.movie.dropIndex('index_name')

将去除相应的目录。

11. 聚合

MongoDB辅助类似于SQL里面的GROUP BY操作。比方当有一张学生战绩的明细表时,大家能够找寻各样分数段的学生各有微微。为了促成这么些操作,大家须要稍加改造咱们的数据库。奉行以下三条命令:

db.movie.update({title:'Seven'},{$set:{grade:1}})
db.movie.update({title:'Forrest Gump'},{$set:{grade:1}})
db.movie.update({title:'Fight Club'},{$set:{grade:2}})

这几条是给每部电影加三个虚构的分别,前两部是归类是一流,后一部是二级。

此处您也足以看出MongoDB的精锐之处:能够动态地继续加多种种新类型。

咱俩先经过集结来寻找一齐有两种品级。

db.movie.aggregate([{$group:{_id:'$grade'}}])

输出:

{ "_id" : 2 }
{ "_id" : 1 }

小心这里的2和1是指等级,实际不是各类级其他电影数。那些事例看得了解些:

db.movie.aggregate([{$group:{_id:'$directed_by'}}])

那边依照制片人名字实行联谊。输出:

{ "_id" : "David Fincher" }
{ "_id" : "Robert Zemeckis" }

继而大家要寻找,每种监制的录制数分别有多少:

db.movie.aggregate([{$group:{_id:'$directed_by',num_movie:{$sum:1}}}])

将会输出:

{ "_id" : "David Fincher", "num_movie" : 2 }
{ "_id" : "Robert Zemeckis", "num_movie" : 1 }

冠亚体育手机网站,注意$sum前边的1意味只是把电影数加起来,但大家也得以计算别的数据,譬喻两位编剧什么人的赞相当多:

 db.movie.aggregate([{$group:{_id:'$directed_by',num_likes:{$sum:'$likes'}}}])

输出:

{ "_id" : "David Fincher", "num_likes" : 358753 }
{ "_id" : "Robert Zemeckis", "num_likes" : 864377 }

瞩目那几个多少都纯属设想啊!

除了$sum,还会有其余一些操作。譬喻:

db.movie.aggregate([{$group:{_id:'$directed_by',num_movie:{$avg:'$likes'}}}])

计算平均的赞。

db.movie.aggregate([{$group:{_id:'$directed_by',num_movie:{$first:'$likes'}}}]

回来每种编剧的电影中的第一部的赞数。

别的种种操作能够参照他事他说加以考察:

12. All or Nothing?

MongoDB扶助单个文书档案内的原子化操作(atomic
operation),这是说,能够将多条关于同贰个文书档案的命令放到一齐,他们依然一齐施行,要么都不进行。而不会进行到四分之二。有个别地方供给确定保障多条实践同步顺次推行。比方三个场景:叁个电商网址,顾客查询某种商品的多余数量,以至用户购买该种商品,那多少个操作,必得放在一块儿施行。不然的话,假定大家先进行剩余数量的查询,那是只要为1,客户接着购买,但假若这么些操作之间还参与了别的操作,比方另三个客商超越购买了,那么原本购买客商的买进的一举一动就能促成数据库的一无所能,因为实际这种商品以至从未存货了。但因为查询剩余数量和购买不是在一个“原子化操作”之内,由此会产生如此的不当[2]。

MongoDB提供了findAndModify的方法来保管atomic operation。例如那样的:

db.movie.findAndModify(
            {
            query:{'title':'Forrest Gump'},
            update:{$inc:{likes:10}}
            }
              )

query是寻找出同盟的文书档案,和find是同样的,而update则是更新likes那几个项目。注意由于MongoDB只辅助单个文书档案的atomic
operation,因而若是query出多于二个文书档案,则只会对第一个文书档案进行操作。

findAndModify还协理越多的操作,具体见:。

13. 文件搜索

除却前方介绍的种种深度查询功效,MongoDB还协助文件寻找。对文本寻觅此前,我们须求先对要寻觅的key创设五个text索引。假定我们要对标题举办文本寻觅,大家得以先这么:

db.movie.ensureIndex({title:'text'})

跟着大家就足以对标题进行文本搜索了,举个例子,查找带有”Gump”的标题:

db.movie.find({$text:{$search:"Gump"}}).pretty()

注意text和search前面的$符号。

以此事例里,文本寻觅效果不是可怜引人瞩目。但如若大家要索求的key是叁个长久文书档案,这种text
search的方便性就显现出来了。MongoDB近些日子支撑15种语言的文书搜索。

14. 正则表明式

MongoDB还帮助基石钟山则表达式的询问。假设不知情正则表达式是如何,能够参见Wikipedia。这里大约举多少个例子。譬喻,查找标题以b终极的影片音信:

db.movie.find({title:{$regex:'.*b$'}}).pretty()

也得以写成:

db.movie.find({title:/.*b$/}).pretty()

招来含有’Fight’标题的影片:

db.movie.find({title:/Fight/}).pretty()

留意上述相称都以分别轻重缓急写的,假诺您要让其不区分轻重缓急写,则能够:

db.movie.find({title:{$regex:'fight.*b',$options:'$i'}}).pretty()

$i是insensitive的意思。那样的话,即便是小写的fight,也能搜到了。

15. 后记

从那之后,MongoDB的最宗旨的剧情就介绍得几近了。假设有如何遗漏的事后笔者会补上來。倘令你一齐看见底完全了这几个入门教程,恭喜您,你肯定是一个有定性的人。

把这些文书档案过一次,不会令你成为三个MongoDB的专家(固然会那就太意外了)。但若是它能或多或少缩小你上手的岁月,可能让您意识到“咦,MongoDB其实没那么复杂”,那么这么些科指标指标也就完毕啦。

其一文书档案是干焦急写就的,出错差非常少是必然的。如若您开采了别的不当或然有关于本文的别的建议,麻烦发邮件给自己(stevenslxie
at gmail.com)恐怕在GitHub上平昔交流,不胜感谢。

转发表明

假诺你开心那篇小说,能够任性转发。但请

  • 申明原著者StevenSLXie;
  • 标记原链接();
  • MongoDB的API链接()
  • 在只怕的情景下请保持文本显示的美貌。比如,请不要平昔一键复制到博客之类,因为代码的展现效果大概特倒霉;
  • 请将以此转发注解包括进来;

Post Author: admin

发表评论

电子邮件地址不会被公开。 必填项已用*标注