码迷,mamicode.com
首页 > 数据库 > 详细

MongoDB运用

时间:2015-07-14 22:11:14      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:


1. 第一步:下载安装包:官方下载地址←单击此处,如果是win系统,注意是64位还是32位版本的,请选择正确的版本。

2. 第二步:新建目录“D:\MongoDB”,解压下载到的安装包,找到bin目录下面全部.exe文件,拷贝到刚创建的目录下。

3. 第三步:在“D:\MongoDB”目录下新建“data”文件夹,它将会作为数据存放的根文件夹。


4
  打开CMD窗口,按照如下方式输入命令:
  > d:
  > cd D:\MongoDB
  > mongod --dbpath D:\MongoDB\data

  在浏览器输入:http://localhost:27017/,可以看到如下提示:

You are trying to access MongoDB on the native driver port. For http diagnostic access, add 1000 to the port number
  如此,MongoDB数据库服务已经成功启动了。

2 MongoDB 基础知识

2.1 document : MongoDB 里边数据的基本单位,相当于关系数据库中的行(Row);

2.2 collection : 相当于关系数据库的表,不过是没有数据结构定义的每个MonogoDB的实例,可以运行多个database,每个database有自己
的collection和权限控制
2.3 MongoDB 拥有一个强大的javaScript shell ,用于管理数据库和操作数据,每个document都有特殊的key:"_ID",这个值在collection是
唯一的

3 Document:

document 是一组有序的key/value对,使用json风格的数据
{ “foot”:3, "greeting":"HelloWord" }
key 是一个utf-8的字符串 ,vaule 可以是很多类型 ,甚至可以是一个嵌入的document;

4 Collection
collection 是一组document,它是无结构定义的,所以你可以吧任何的document存入一个collection里

5 Subcollection
一个习惯性组织collection的方式,使用.号分隔

7 一些简单的运用
配置文件中
<appSettings>
<add key="MongoServerSettings" value="mongodb://127.0.0.1:27017"/>
</appSettings>

-----
public abstract class BaseEntity
{
/// <summary>
/// 约束必须有键
/// </summary>
[BsonId]
public ObjectId Id { get; set; }
}

-----


在另一个类中
public class Customer : BaseEntity
{
public string Name { get; set; }
public int CusId { get; set; }
public DateTime Subtime { get; set; }
public List<Order> Orders { get; set; }
public string Demo { get; set; }
public string Shit { get; set; }
}

public class Order
{
public int OrderId { get; set; }
public string Content { get; set; }
}

 

--------------------------

MongoCollection<Customer> m_ListCollectio=null;

private void button1_Click(object sender, EventArgs e)
{
//获取连接字符串
string strconn = ConfigurationManager.AppSettings["MongoServerSettings"];
//创建mongodb服务对应的对象
MongoServer m_Server= MongoServer.Create(strconn);
//获取数据库,如果没有,会自动创建一个
MongoDatabase m_Db= m_Server.GetDatabase("test22");
////指定集合的名字
var collectonName = typeof(Customer).Name;
//获取集合,如果集合不存在,那么直接创建一个(相当于表)
m_ListCollectio = m_Db.GetCollection<Customer>(collectonName);
// Add();
//QueryAll();
}
#region 添加
public void Add( )
{

for (int i = 0; i < 10; i++)
{
Customer customer = new Customer();//创建实体
customer.CusId = i;
customer.Name = "shit" + i;
customer.Subtime = DateTime.Now;

customer.Demo = "ddd";
if (i == 10)
{
customer.Demo = "sssss";
}

customer.Shit = DateTime.Now.ToString();

m_ListCollectio.Insert(customer);//将数据插入到 集合里面去
}
MessageBox.Show(m_ListCollectio.Count() + "");

}
#endregion

#region 查询全部

public void QueryAll()
{
MongoCursor<Customer> list = m_ListCollectio.FindAll();

 


foreach (Customer customer1 in list)
{
Console.WriteLine(customer1.Id+ "--" + customer1.CusId + "-----" + customer1.Subtime.ToString());
}

}

#endregion

#region 删除
public void Del()
{
//删除全部
//m_ListCollectio.RemoveAll();

//删除指定的一条数据
//m_ListCollectio.Remove(Query.EQ("Demo","sssss"));

//规约模式
m_ListCollectio.Remove(Query.And(Query.EQ("demo", "ssssss"), Query.EQ("CusId",10)));
m_ListCollectio.Remove(Query.Or(Query.EQ("demo", "ssssss"), Query.EQ("CusId", 10)));
// GT大于
}
#endregion
#region 修改
public void Update()
{
var cus= m_ListCollectio.FindOneAs<Customer>(Query.EQ("CusId", 12));
cus.Demo = "dssadasdasdas";
m_ListCollectio.Save(cus);
}

#endregion

详细学习可以看单元测试
\MongoDB\mongo-csharp-driver-master\mongo-csharp-driver-master/MongoDB.DriverUnitTests;

 

MongoDB运用

标签:

原文地址:http://www.cnblogs.com/cdaq/p/4646564.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!