C#编程之MongoDB 学习笔记四 C#调用MongoDB
小标 2019-02-21 来源 : 阅读 1414 评论 0

摘要:本文主要向大家介绍了C#编程之MongoDB 学习笔记四 C#调用MongoDB,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

本文主要向大家介绍了C#编程之MongoDB 学习笔记四 C#调用MongoDB,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

C#编程之MongoDB 学习笔记四 C#调用MongoDB

驱动

下载 https://github.com/mongodb/mongo-csharp-driver/downloads

项目地址: https://github.com/mongodb/mongo-csharp-driver

1.10 使用参考: //mongodb.github.io/mongo-csharp-driver/1.10/

1.10 API //api.mongodb.org/csharp/1.10/
官方推荐使用Nuget进行安装。但我搜索时出来东西太多了,分不清,故直接下载。 要注意的是,2.0 和1.10支持的环境不同。

C#/.NET Driver VersionMongoDB 2.4MongoDB 2.6MongoDB 3.0

Version 2.0

Version 1.10

Driver Version.NET 3.5.NET 4.0.NET 4.5Mono 2.10Mono 3.x

Version 2.0

Version 1.10

我这里下载1.10版本,framework 4.0环境。
使用
连接
using MongoDB.Bson;
using MongoDB.Driver;
var client = new MongoClient("mongodb://localhost:27017");
var server = client.GetServer();
var database = server.GetDatabase("foo");
var collection = database.GetCollection("bar");

await collection.InsertOneAsync(new BsonDocument("Name", "Jack"));

var list = await collection.Find(new BsonDocument("Name", "Jack"))
    .ToListAsync();

foreach(var document in list)
{
    Console.WriteLine(document["Name"]);
}
Document是实体类
using MongoDB.Bson;
using MongoDB.Driver;
public class Person
{
    public ObjectId Id { get; set; }
    public string Name { get; set; }
}
var client = new MongoClient("mongodb://localhost:27017");
var server = client.GetServer();
var database = server.GetDatabase("foo");
var collection = database.GetCollection("bar");

await collection.InsertOneAsync(new Person { Name = "Jack" });

var list = await collection.Find(x => x.Name == "Jack")
    .ToListAsync();

foreach(var person in list)
{
    Console.WriteLine(person.Name);
}

实体类给下面的代码使用
public class Entity
{
    public ObjectId Id { get; set; }
    public string Name { get; set; }
}
 
插入
var entity = new Entity { Name = "Tom" };
collection.Insert(entity);
var id = entity.Id; // Insert will set the Id if necessary (as it was in this example)
查找
var query = Query.EQ(e => e.Id, id);
var entity = collection.FindOne(query);
// var entity = collection.FindOneByIdAs(id);

/*
 定义一个查询:查询stdid=1的文档
FindOneArgs args = new FindOneArgs {
    Query = Query.EQ("stdid", 1),//查询stdid field等于1的document。
};
//查询
var std = collection.FindOneAs(args);
*/
/*
 查询多条
 IMongoQuery query = Query.GTE("stdid",2);
 var result=collection.FindAs(Query.GTE("stdid",2));
 foreach (var each in result) {
     Console.WriteLine(each.stdName);
 }
*/
 
保存
entity.Name = "Dick";
collection.Save(entity);
更新
var query = Query.EQ(e => e.Id, id);
var update = Update.Set(e => e.Name, "Harry"); // update modifiers
collection.Update(query, update);
 
删除
var query = Query.EQ(e => e.Id, id);
collection.Remove(query);
 
这是一个完整的示例:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Builders;

namespace ConsoleApplication1
{
    public class Entity
    {
        public ObjectId Id { get; set; }
        public string Name { get; set; }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var connectionString = "mongodb://localhost";
            var client = new MongoClient(connectionString);
            var server = client.GetServer();
            var database = server.GetDatabase("test");
            var collection = database.GetCollection("entities");

            var entity = new Entity { Name = "Tom" };
            collection.Insert(entity);
            var id = entity.Id;

            var query = Query.EQ(e => e.Id, id);
            entity = collection.FindOne(query);

            entity.Name = "Dick";
            collection.Save(entity);

            var update = Update.Set(e => e.Name, "Harry");
            collection.Update(query, update);

            collection.Remove(query);
        }
    }
}
 

参考://mongodb.github.io/mongo-csharp-driver/1.10/getting_started/

LinQ查询
C# driver 1.8版本开始支持Linq查询。
var linquery = from e in collection.AsQueryable()
                       //where e.age> 22
                       select e;
linquery=linquery.Where(c=>c.Name=="张三");
int count=linquery.Count();
 

参考://mongodb.github.io/mongo-csharp-driver/1.10/linq/

Document查询方式
未测试,参考地址记录在这里。
//Document docName = new Document { { "字段名1", "输入值1" }, { "字段名2", "输入值2" } };
/// 


/// 根据姓名获取用户信息
/// 


/// 

用户Model类
/// 

用户泛型集合


public List

 GetUserByName(UserInfo mUserInfo)
{
    List lsUser = new List();
    using (Mongo mongo = new Mongo("mongodb://localhost"))
    {
        MongoDatabase mongoDatabase = mongo.GetDatabase("UserInfo") as MongoDatabase;
        MongoCollection mongoCollection = mongoDatabase.GetCollection("myCollection") as MongoCollection;
        mongo.Connect();
        Document docName = new Document { { "FirstName", "aaa" }, { "LastName", "bbb" } };
        MongoDB.ICursor users = mongoCollection.Find(docName);

        foreach (Document user in users.Documents)
        {
            UserInfo mUser = new UserInfo();
            mUser.FirstName = user["FirstName"].ToString();
            mUser.LastName = user["LastName"].ToString();
            mUser.CorporationName = user["CorporationName"].ToString();
            mUser.Phone = user["Phone"].ToString();
            mUser.Email = user["Email"].ToString();
            mUser.UserType = user["UserType"].ToString();
            lsUser.Add(mUser);
        }
    }

    return lsUser;
}
 

本文主要向大家介绍了,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程