您的位置:首页 > 数据库 > Mongodb

MongoDb在C#中使用

2017-12-22 15:26 141 查看
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;
using System.Data;
using System.Data.SqlClient;
using MongoDB.Bson;
using MongoDB.Driver;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//连接信息            string conn = "mongodb://localhost";
string database = "demoBase";
string collection = "demoCollection";

MongoServer mongodb = MongoServer.Create(conn);//连接数据库            MongoDatabase mongoDataBase = mongodb.GetDatabase(database);//选择数据库名            MongoCollection mongoCollection = mongoDataBase.GetCollection(collection);//选择集合,相当于表
mongodb.Connect();

//普通插入            var o = new { Uid = 123, Name = "xixiNormal", PassWord = "" };
mongoCollection.Insert(o);

//对象插入            Person p = new Person { Uid = 124, Name = "xixiObject", PassWord = "" };
mongoCollection.Insert(p);

//BsonDocument 插入            BsonDocument b = new BsonDocument();
b.Add("Uid", 125);
b.Add("Name", "xixiBson");
b.Add("PassWord", "");
mongoCollection.Insert(b);

Console.ReadLine();
}
}

class Person {
public int Uid;
public string Name;
public string PassWord;

}
}


 

结果:



都是上述配置写的,程序会自动建立对应的库和集合。

下面的操作不上完整代码了:

/*
* sql : SELECT * FROM table
*
*/
MongoCursor<Person> p = mongoCollection.FindAllAs<Person>();

/*
* sql : SELECT * FROM table WHERE Uid > 10 AND Uid < 20
*
*/
QueryDocument query = new QueryDocument();
BsonDocument b = new BsonDocument();
b.Add("$gt", 10);
b.Add("$lt", 20);
query.Add("Uid", b);

MongoCursor<Person> m = mongoCollection.FindAs<Person>(query);

/*--
* sql : SELECT COUNT(*) FROM table WHERE Uid > 10 AND Uid < 20
*--
*/
long c = mongoCollection.Count(query);

/*--
* sql : SELECT Name FROM table WHERE Uid > 10 AND Uid < 20
*--
*/
QueryDocument query = new QueryDocument();
BsonDocument b = new BsonDocument();
b.Add("$gt", 10);
b.Add("$lt", 20);
query.Add("Uid", b);
FieldsDocument f = new FieldsDocument();
f.Add("Name", 1);

MongoCursor<Person> m = mongoCollection.FindAs<Person>(query).SetFields(f);
/*--
* sql : SELECT * FROM table ORDER BY Uid DESC LIMIT 10,10
*--
*/
QueryDocument query = new QueryDocument();
SortByDocument s = new SortByDocument();
s.Add("Uid", -1);//-1=DESC
MongoCursor<Person> m = mongoCollection.FindAllAs<Person>().SetSortOrder(s).SetSkip(10).SetLimit(10);


 

官方驱动查询:

Query.All("name", "a", "b");//通过多个元素来匹配数组

Query.And(Query.EQ("name", "a"), Query.EQ("title", "t"));//同时满足多个条件

Query.EQ("name", "a");//等于

Query.Exists("type", true);//判断键值是否存在

Query.GT("value", 2);//大于>

Query.GTE("value", 3);//大于等于>=

Query.In("name", "a", "b");//包括指定的所有值,可以指定不同类型的条件和值

Query.LT("value", 9);//小于<

Query.LTE("value", 8);//小于等于<=

Query.Mod("value", 3, 1);//将查询值除以第一个给定值,若余数等于第二个给定值则返回该结果

Query.NE("name", "c");//不等于

Query.Nor(Array);//不包括数组中的值

Query.Not("name");//元素条件语句

Query.NotIn("name", "a", 2);//返回与数组中所有条件都不匹配的文档

Query.Or(Query.EQ("name", "a"), Query.EQ("title", "t"));//满足其中一个条件

Query.Size("name", 2);//给定键的长度

Query.Type("_id", BsonType.ObjectId );//给定键的类型

Query.Where(BsonJavaScript);//执行JavaScript

Query.Matches("Title",str);//模糊查询 相当于sql中like -- str可包含正则表达式


 

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: