MongoDB运用


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

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

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


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

  在浏览器输入: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

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

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