摘要:本文主要向大家介绍了C#编程之MongoDB 学习笔记四 C#调用MongoDB,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
本文主要向大家介绍了C#编程之MongoDB 学习笔记四 C#调用MongoDB,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
驱动
下载 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
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
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
var entity = collection.FindOne(query);
// var entity = collection.FindOneByIdAs
/*
定义一个查询:查询stdid=1的文档
FindOneArgs args = new FindOneArgs {
Query = Query.EQ("stdid", 1),//查询stdid field等于1的document。
};
//查询
var std = collection.FindOneAs
*/
/*
查询多条
IMongoQuery query = Query.GTE("stdid",2);
var result=collection.FindAs
foreach (var each in result) {
Console.WriteLine(each.stdName);
}
*/
保存
entity.Name = "Dick";
collection.Save(entity);
更新
var query = Query
var update = Update
collection.Update(query, update);
删除
var query = Query
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
var entity = new Entity { Name = "Tom" };
collection.Insert(entity);
var id = entity.Id;
var query = Query
entity = collection.FindOne(query);
entity.Name = "Dick";
collection.Save(entity);
var update = Update
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
本文主要向大家介绍了,通过具体的内容向大家展示,希望对大家学习C#编程有所帮助。
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号