学车网
您的当前位置:首页Mongodb从配置到应用

Mongodb从配置到应用

来源:学车网


Mongodb目前最新版本是1.8.1
首先启动终端 :
输入 wget?http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.8.1.tgz
下载mongodb-linux-i686-1.8.1.tgz安装包
解压 tar -zxvf mongodb-linux-i686-1.8.1.tgz

默认情况下Mongodb会在/data/db/ 这个文件夹存放数据

在当前目录下输入如下命令,创建用户 :
//添加一个mongodb用户
adduser mongodbxiao
//设置密码
passwd mongodb

继续输入

sudo mkdir -p /data/db/
//把”/data/db/”的属主改成mongodb用户
$ sudo chown mongodbxiao /data/db/
$ chown -R mongodb:mongodbxiao /data
当然 可以 通过–dbpath 命令 指定MongoDB将数据存储到另外的目录中去。

在运行下面的语句之前需要安装一下mongo shell 否则会收到提示:程序“mongo”尚未安装。
apt-get install mongodb-clients

运行数据库
$? ./mongodb-linux-i686-1.8.1/bin/mongod
$ ./mongodb-linux-i686-1.8.1/bin/mongo
> db.test.save({123123:’哈哈哈’})
> db.test.find();

创建数据库并添加一条记录,最后查询结果:

到此证明我们在Ubuntu下配置Mongodb成功..

ps:使用Ubuntu过程中经常会遇到这个错误:

只需要输入强制解锁,命令即可解决。

sudo rm /var/cache/apt/archives/lock

sudo rm /var/lib/dpkg/lock

三,Mongodb客户端管理工具

Try MongoDB

不用安装就可以试用MongoDB,和tryredis一样,是一个基于web的shell模拟工具,可以让你在不用安装MongoDB的情况下试用MongoDB的各种功能.

Mongo3?– MongoDB 集群管理工具

MongoVUE

一个windows下的客户端管理工具,我推荐这个,非常不错.有点类似于mysql管理工具..

四,Mongodb C#版驱动

第一款:mongodb-csharp 项目地址:http://github.com/samus/mongodb-csharp

简单介绍:该驱动是比较全的驱动,更新随度非常快,有人已经应用到项目中去,并且表现非常好。目前他们的团队正在致力于连接管理这部分功能的扩展例如:自动重连,连接池等等。

第二款:mongodb-net 项目地址:http://code.google.com/p/mongodb-net/

简单介绍:该开发还在进行中,有些功能还没有实现。

第三款:MongoDB.Emitter 项目地址:http://bitbucket.org/gwbasic/mongodb.emitter/

简单介绍:提供了强类型支持

第四款:CSMongo 项目地址:http://somewebguy.wordpress.com/2010/02/21/building-a-mongo-driver-part-1/

简单介绍:实现了部分功能,并且没有可下载的代码。但是你可以看他的博客以了解这种驱动的思想。

第五款:simple- mongodb 项目地址:http://code.google.com/p/simple-mongodb/

简单介绍:没有提供源代码,以JSon为核心。

最后一个是对第一款某些地方的增强,地址http://deserialized.com/convert-csharp-classes-to-and-from-mongodb-documents-automatically-using-net-reflection

第六款:NoRM 项目地址:http://github.com/atheken/NoRM

介绍:增强了第一种,支持强类型。

五,Mongodb 与sql 语句对照

此处用mysql中的sql语句做例子,C# 驱动用的是samus,也就是上文中介绍的第一种.

引入项目MongoDB.dll

//创建Mongo连接
 var mongo = new Mongo("mongodb://localhost");
 mongo.Connect();
 //获取一个数据库,如果没有会自动创建一个
 var db = mongo.GetDatabase("movieReviews");
 //创建一个列表,并为这个列表创建文档
 var movies = db.GetCollection("movies");

连接没问题之后,现在让我们用mysql 与mongodb的一些语句做下对比:

MongoDB Mysql
查询全部 movies.find(new Document()) SELECT * FROM movies
条件查询 movies.Find(new Document { { “title”, “Hello Esr” } }); SELECT * FROM movies WHERE title= ‘foobar’
查询数量 movies.Find(new Document { { “title”, “测试2″ } }).Documents.Count(); SELECT COUNT(*) FROM movies WHERE `title` = ‘foobar’
数量范围查询 1, movies.Find(new Document().Add(“$where”, new Code(“this.num > 50″)));

2, movies.Find(new Document().Add(“num”,? new Document().Add(“$gt”,50)));
($gt : > ; $gte : >= ; $lt : < ; $lte : <= ; $ne : !=)

3,movies.Find(“this.num > 50″);

4,movies.Find(new Document().Add(“$where”,new Code(“function(x){ return this.num > 50};”)));

select * from movies where num > 50
分页查询 movies.Find(new Document()).Skip(10).Limit(20); SELECT * FROM movies? limit 10,20
查询排序语句 movies.Find(new Document()).Sort(new Document() { { “num”, -1 } }); SELECT * FROM movies ORDER BY num DESC
查询指定字段 movies.Find(new Document().Add(“num”, new Document().Add(“$gt”, 50)), 10, 0, new Document() { { “title”, 1 } }); select title from movies where num > 50
插入语句 movies.Insert(new Document() { { “title”, “测试” }, { “resuleData”, DateTime.Now } }); INSERT INOT movies (`title`, `reauleDate`) values (‘foobar’,25)
删除语句 movies.Remove(new Document() { { “title”, “Hello Esr” } }); DELETE * FROM movies
更新语句 movies.Update(new Document() { { “title”, “测试2″ } }
, new Document() { { “title”, “测试11111″ } });
UPDATE movies SET `title` = ‘测试1111’ WHERE `title` = ‘测试1111′
Linq查询 (from item in db.GetCollection(“movies”).Linq()
where ((string)item["title"]).StartsWith(“Esr”)
select item);
select * from movies where title like ‘%Esr’

这里只举出了几个比较典型的例子,可以这么说,只要mysql可以完成的sql语句,在mongodb里面都可以实现.

显示全文