xuqiang@ubuntu:~/mongodb/mongodb-linux-i686-1.6.4$ cd bin
xuqiang@ubuntu:~/mongodb/mongodb-linux-i686-1.6.4/bin$ ls
bsondump mongod mongoexport mongoimport mongos mongostat
mongo mongodump mongofiles mongorestore mongosniff
使用超级用户启动服务器: xuqiang@ubuntu:~/mongodb/mongodb-linux-i686-1.6.4/bin$ sudo ./mongod
mongod mongodump
xuqiang@ubuntu:~/mongodb/mongodb-linux-i686-1.6.4/bin$ sudo ./mongod 输出如下:
./mongod --help for help and startup options
Sun Mar 27 04:26:17 MongoDB starting : pid=6289 port=27017 dbpath=/data/db/ 32-bit
** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
** see http://blog.mongodb.org/post/137788967/32-bit-limitations
Sun Mar 27 04:26:17 db version v1.6.4, pdfile version 4.5
Sun Mar 27 04:26:17 git version: 4f5c02f8d92ff213b71b88f5eb643b7f62b50abc
Sun Mar 27 04:26:17 sys info: Linux domU-12-31-39-01-70-B4 2.6.21.7-2.fc8xen #1 SMP Fri Feb 15 12:39:36 EST 2008 i686 BOOST_LIB_VERSION=1_37
Sun Mar 27 04:26:17 [initandlisten] waiting for connections on port 27017
Sun Mar 27 04:26:18 [websvr] web admin interface listening on port 28017 通过上面的查看可以看到当前服务器在27017端口上监听,同时数据库文件是存储在/data/db/下的。当然如果不想在命令行键入文件的全路径,可以将上面的路径添加到环境变量中,或者是将这几个bin下的文件全部拷贝到/usr/bin/下。服务器启动起来之后,我们来启动客户端程序:
重新打开一个bash console,命令:
xuqiang@ubuntu:~/mongodb$ mongo
输出: MongoDB shell version: 1.6.4
connecting to: test
>
到目前服务器已经启动起来,同时我们通过客户端和服务器端成功连接。呵呵,是不是比较激动,下面是一个简单的测试: > db.foo.save( { a : 2 } );
> db.foo.find();
{ "_id" : ObjectId("4d8f216819225380327a66ae"), "a" : 2 }
需要注意的是foo集合如果test数据库中不存在,那么将自动创建。 3. MongoDB控制台简介
MongoDB采用的javascript式的交互控制台,可以从中直接操作数据库。在其中键入help可以查看常见的帮助主题,然后进入具体的帮助主题中。通过help命令能够对MongoDB命令行有个初步认识。js的控制台中有命令记忆的功能,可以通过上下箭头来查看先前键入的命令。
> help
db.help() help on db methods
db.mycoll.help() help on collection methods
rs.help() help on replica set methods
help connect connecting to a db help
help admin administrative help
help misc misc things to know
show dbs show database names
show collections show collections in current database
show users show users in current database
show profile show most recent system.profile entries with time>= 1ms
use set current database
db.foo.find() list objects in collection foo
db.foo.find( { a : 1 } ) list objects in foo where a == 1
it result of the last line evaluated; use to furtheriterate
exit quit the mongo shell4. 如何向数据库中插入数据
下面的测试是在mydb中进行,首先进行数据库切换:
> use mydb
switched to db mydb 4.1 插入命令结构如下:
4.2 示例 (http://www.mongodb.org/display/DOCS/Tutorial#):
> j = { name : "mongo" };
{"name" : "mongo"}
> t = { x : 3 };
{ "x" : 3 }
> db.things.save(j);
> db.things.save(t);
> db.things.find();
{ "_id" : ObjectId("4c2209f9f3924d31102bd84a"), "name" : "mongo" }
{ "_id" : ObjectId("4c2209fef3924d31102bd84b"), "x" : 3 }5. 如何查询数据库 ?
5.1 查询基本结构:
5.2 使用游标?
> var cursor = db.things.find();
> while (cursor.hasNext()) printjson(cursor.next()); 其中printjson是内置函数。
5.3 如何增加查询条件?
> db.things.find({name:"mongo"}).forEach(printjson);
{ "_id" : ObjectId("4d8de0a325a9112df63a8c62"), "name" : "mongo" } 上面的查询等价的sql如下:
SELECT * FROM things WHERE name="mongo"
5.4 如何仅仅返回特定的列?