MongoDB之开始

开始使用MongoDB


本教程介绍了基本的数据库操作使用mongo shell。
MongoDB是一个标准的一部分,提供了一个完整的MongoDB分布JavaScript环境有一个完整的访问JavaScript语言和所有标准功能以及一个完整的数据库接口MongoDB。MongoDB支持Windows和提供了一个Windows分布具有相同操作。的指示安装MongoDB和启动数据库服务器,看到合适的安装文档。

好吧。假使你已经把安装好了。然后data和log也全部通过cmd搞定了。

那么好吧,启动服务。


因为我的在cmd中启动命令:mongo,可是启动不了。

另外我也有些懒,我就直接在安装文件中的bin下面找到mongo.exe,开始我们的shell编程,这个语法真心很像javascript的语法,以至于我一下子没有反应过来。呵呵,不吐槽了。

这就是启动的界面:



1.在启动mongo shell,您的会话将使用test据库上下文,默认情况下。在任何时候,用下面的命令:

db
就会看到这个样子:


2.显示所有的数据库,就好像在mysql中的show databases;在MongoDB中是:

show dbs

3.使用以下命令,连接该数据库,若是该数据库不存在直接创建:

use mydb

相较Mysql,这个功能,感觉有点太方便了,不过要是误操作N次,那么会不会数据库就特别多了呢。我对底层不知道,就不吐槽了。


4.你可以用help命令去查看帮助:


这些基本的命令还是看下吧。挺有用的。


5.Create two documents, named j and k, with the following sequence of JavaScript operations:(这句英语可以读懂吧,呵呵)

j = { name : "mongo" }
k = { x : 3 }
6.好吧,先说一点,关于在MongoDB中table的概念,我也不知道用table是不是很合适,你看看下面的代码,就知道MongoDB到底有多麽随便了,尼玛!

提示:things,并非一个关键字什么的,只不过是一个数据的集合(恩,我觉得用集合比较合适):将两个变量插入things这个集合中,其实也可以理解为将insert标注为things这个集合。语法:

  1. db.things.insert( j )
    db.things.insert( k )
    

    这里,第一次使用things这个集合,然后会直接创建,和MongoDB的DB一个德行。


    7.你可以确认下,集合确存在了:

    show collections

8.嗯,我想看下我的数据,就好像MySql的“select * from tablename”:

db.things.find()

你是不是突然发现,Why is one more field.是的多了个_id,这个就是主键唯一标示符,MongoDB隐式创建的,并插入到集合的每一个数据元中。


9.使用for进行循环插入:

for (var i = 1; i <= 20; i++) db.things.insert( { x : 4 , j : i } )
查询结果:


看到这里忽然觉得MongoDB的应用其实并没有想象的屌。

不知道你注意到最后一句:type "it" for more .了没。

什么意思?

显然是显示更多啊。

10.使用遍历:

当你查询一个集合,MongoDB将返回一个对象,其中包含查询的结果。然后遍历mongo shell的cursor显示结果。而不是立即返回所有结果,shell遍历游标20倍显示第一个20个结果,然后等待请求迭代剩余的结果。这可以防止mongo从显示数以千计甚至数以百万计的结果在一次。

MongoDB默认显示20条数据,突然觉得比Mysql的人性化好多。

var c = db.things.find()

然后用hasNext();方法遍历处理,hasNext()有木有很熟悉的赶脚,java的,C++的还有数据结构的各种hasNext。

while ( c.hasNext() ) printjson( c.next() )

然后这个就输出全部的信息了。


11.使用数组对结果进行显示,个人觉得这个使用的时机不是太大:

var c = db.things.find()
printjson( c [ 4 ] )

12.查询特定的数据元

db.things.find( { name : "mongo" } )

查询所有的文件在x的值为4:

db.things.find( { x : 4 } )

查询所有的文件在x的值为4,在前面的查询,但是只返回值的j。MongoDB还将返回,除非明确排除_id字段。要做到这一点,你可以添加{ j:1 }文件作为投影在第二个参数。我试了下除了添加{j:0},其他的结果都一样,至于why,我在研究。

db.things.find( { x : 4 } , { j : 1 } )



13.返回一个document,而不是cursor。

db.things.findOne()
findOne()和find()用法一样,不过return的不同一个 是document(文件),另一个是 是个cursor(光标)。


14.Limit the Number of Documents in the Result Set

db.things.find().limit(3)

好吧,第一次翻译英文文档,话说我四级还没有过。好了,一会再搞一下章节。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值