日期:2014-05-16  浏览次数:20687 次

MongoDB学习(一)安装和基本使用

如今NoSql这么火热,假期闲来无事也来凑凑热闹,多学点儿是点儿,好处肯定有,坏处肯定没。。。。

选了大家谈论最多的mongodb来学习,先去www.mongodb.org 下载,安装就直接解压到你就好了。

假设windows 32bit机,建立目录D:\mongodb?? 把压缩包bin目录下的exe全部放到mongodb目录下,然后建立一个data文件夹(D:\mongodb\data) 这个data目录就是用来存放数据的,默认是C盘data\db目录。

bin目录下的

mongod.exe - 数据库服务器.

mongo.exe - 管理员shell

当我们使用自定义的数据存储文件目录D:\mongodb\data时,使用cmd 进入D:\mongdodb目录

输入mongod --dbpath D:\mongodb\data用来启动时指定数据存储目录。

然后运行mongo.exe就行了。

使用help命令就可以查看所有想要得到的命令。

?

下面进入开发学习阶段:

?

其实我真的很想就复制粘贴官网的文档,因为真的很容易懂,都懒得翻译写出来了,唉。。。。。

启动之后,将看到

By default the shell connects to database "test" on localhost.? You then see:

MongoDB shell version: <whatever>
url: test
connecting to: test
type "help" for help
>
?

"connecting to: " 显示了正在连接和使用的数据库。想要使用其它库, 键入:

> use mydb
switched to db mydb
?

用use命令切换数据库并不能立即创建数据库,数据库将在第一次插入数据时延迟创建。可以使用show dbs查看数据库。

Inserting Data into A Collection

下面的shell命令,创建了两个对象j和t,并把它们存入sha0k集合中,K-V,就像map一样,称它集合,不为过吧。

> j = { name : "mongo" };
{"name" : "mongo"}
> t = { x : 3 };
{ "x" : 3  }
> db.sha0k.save(j);
> db.sha0k.save(t);
> db.sha0k.find();
{ "_id" : ObjectId("4f2167ee......"), "name" : "mongo" }
{ "_id" : ObjectId("4f2168f....."), "x" : 3 }
>

?对象Id太长了,我没写完,然后再使用show dbs就可以看到mydb已经在数据库列表中了,库创建完成。

?有几点是需要注意的(我是真的懒得翻译了,见谅):

  • We did not predefine the collection. The database creates it automatically on the first insert.(没有预先定义集合)
  • The documents we store can have different fields - in fact in this example, the documents have no common data elements at all. In practice, one usually stores documents of the same structure within collections.()
  • Upon being inserted into the database, objects are assigned an object ID (if they do not already have one) in the field _id .
  • When you run the above example, your ObjectID values will be different.

一次添加多个对象:

> for (var i = 1; i <= 20; i++) db.sha0k.save({x : 4, j : i});
> db.sha0k.find();
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }
{ "_id" : ObjectId("4c220a42f3924d31102bd856"), "x" : 4, "j" : 1 }
{ "_id" : ObjectId("4c220a42f3924d31102bd857"), "x" : 4, "j" : 2 }
{ "_id" : ObjectId("4c220a42f3924d31102bd858"), "x" : 4, "j" : 3 }
{ "_id" : ObjectId("4c220a42f3924d31102bd859"), "x" : 4, "j" : 4 }
{ "_id" : ObjectId("4c220a42f3924d31102bd85a"), "x" : 4, "j" : 5 }
{ "_id" : ObjectId("4c220a42f3924d31102bd85b"), "x" : 4, "j" : 6 }
{ "_id" : ObjectId("4c220a42f3924d31102bd85c"), "x" : 4, "j" : 7 }
{ "_id" : ObjectId("4c220a42f3924d31102bd85d"), "x" : 4, "j" : 8 }
{ "_id" : ObjectId("4c220a42f3924d31102bd85e"), "x" : 4, "j" : 9 }
{ "_id" : ObjectId("4c220a42f3924d31102bd85f"), "x" : 4, "j" : 10 }
{ "_id" : ObjectId("4c220a42f3924d31102bd860"), "x" : 4, "j" : 11 }
{ "_id" : ObjectId("4c220a42f3924d31102bd861"), "x" : 4, "j" : 12 }
{ "_id" : ObjectId("4c220a42f3924d31102bd862"), "x" : 4, "j" : 13 }
{ "_id" : ObjectId("4c220a42f3924d31102bd863"), "x" : 4, "j" : 14 }
{ "_id" : ObjectId("4c220a42f3924d31102bd864"), "x" : 4, "j" : 15 }
{ "_id" : ObjectId("4c220a42f3924d31102bd865"), "x" : 4, "j" : 16 }
{ "_id" : ObjectId("4c220a42f3924d31102bd866"), "x" : 4, "j" : 17 }
{ "_id" : ObjectId("4c220a42f3924d31102bd867"), "x" : 4, "j" : 18 }
has more

?我一共插入了20个数据,这里只显示了18个,并在下面提示has more,这是因为shell限制一个迭代的游标只到20,所以要查看下面的,需要使用it命令,iterator。。。。

?

{ "_id"