zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    [转]tensorflow提示:No module named ''tensorflow.python.eager"
    mac使用pip3安装tensorflow(不用conda)
    不限速、没广告的迅雷(旧版迅雷)
    python从国内镜像安装第三方库
    Jupyter 安装并配置工作路径[转]
    VS2013只显示会附加到进程,无法启动调试
    电脑磁盘空间占用高于文件夹大小
    Latex基础
    C#/.Net 部分缩写
    texstudio设置外部浏览器及右侧预览不能使用问题
  • 原文地址:https://www.cnblogs.com/cdaq/p/4646564.html
Copyright © 2011-2022 走看看