Heim > Datenbank > MySQL-Tutorial > Hauptteil

MongoDB的增删改查

WBOY
Freigeben: 2016-06-07 16:32:27
Original
855 Leute haben es durchsucht

本文是对mongodb学习的一点笔记,主要介绍最简单的增删改操作,初学,看着API,有什么错误,希望大家指正:(使用官方驱动) 1.增 增加操作是最简单的,构造bsonDcument插入即可: 方式1,直接构造: MongoServer dbserver = new MongoClient(connectionStr)

本文是对mongodb学习的一点笔记,主要介绍最简单的增删改操作,初学,看着API,有什么错误,希望大家指正:(使用官方驱动)

1.增

增加操作是最简单的,构造bsonDcument插入即可:

方式1,直接构造:

MongoServer dbserver = new MongoClient(connectionStr).GetServer();
            MongoDatabase db = dbserver.GetDatabase(dbName);
            MongoCollection collection = db.GetCollection(collectionName);
            dbserver.Connect();
            BsonDocument doc = new BsonDocument();
            doc["Age"] = Int32.Parse(txt_Age.Text);
            doc["Name"] = txt_Name.Text;
            doc["Num"] = txt_Num.Text;
            doc["Introduction"] = txt_Introduction.Text;
            collection.Insert(doc);
Nach dem Login kopieren

方式2,通过实体构造:

1  var student = new Student
2  {
3       Age = Int32.Parse(txt_Age.Text),
4       Name = txt_Name.Text,
5       Num = txt_Num.Text,
6       Introduction = txt_Introduction.Text
7   };
8             
9  collection.Insert(student);
Nach dem Login kopieren

2.删

关键就是构造删除条件,通过api查到Remove方法的签名:public virtual WriteConcernResult Remove(IMongoQuery query);在网上看到好多写法都是在Remove中传入BsonDocument对象,但是我查源码发现bsonDocument根本没有实现IMongoQuery接口,实现这个接口的是一个叫做QueryDocument的类,同时QueryDocument也继承了BsonDocument对象,而构造BsonDocument和QueryDocument的方式超级多,各种方便,简单写几种:

比如构造如下条件,delete from table where?Age>15 &Age

相应的mongodb条件写法:{Age:{$gt:15,$lt:20}},下面就来构造这个条件;

方式1,直接通过bsonDocument构造:

BsonDocument doc = new BsonDocument
{
    { "Age",new BsonDocument{{"$gte",10},{"$lte",15}}}
};
Nach dem Login kopieren

方式2,直接通过QueryDocument构造:与1类似

1  QueryDocument query = new QueryDocument
2  {
3      { "Age",new QueryDocument{{"$gte",10},{"$lte",15}}}
4  };
Nach dem Login kopieren

方式3,直接通过反序列化json字符串:

1  string json = "{ Age:{$gte:10,$lte:15}}";
2  var queryJson = BsonSerializer.Deserialize(json, typeof(BsonDocument)) as BsonDocument;
Nach dem Login kopieren

个人觉得这种方式挺好,如果你mongodb命令熟悉,这种方式挺适合构造复杂条件的

方式4:通过Query类,Query是静态类,封装了各种逻辑条件方法,有泛型和泛型两种方式:

1  var query1 = Query.GT("Age", 10);//大于10;greater than 10
2  var query2 = Query.LT("Age", 15);//小于15;less than 15
3  var query = Query.And(query1, query2);
Nach dem Login kopieren

但是更好的要数泛型方式了:

var query1 = Query.GTE(t => t.Age, 10);
 var query2 = Query.LTE(t => t.Age, 15);
 //var query = Query.And(Query.GTE("Age", 10), Query.LTE("Age", 15));
 var query = Query.And(query1, query2);
Nach dem Login kopieren

最后执行Remove方法即可;

3.查

数据显示是必不可少的,查询操作中的条件过滤在删除中已说过,不再赘述,这里先写两种方式(ps:现在了解太浅,只能以笔记形式记录下)

方式1:通过FindAllAs方式或者FindAs方法

1  var query1 = Query.GTE(t => t.Age, 10);
2  var query2 = Query.LTE(t => t.Age, 15);
3  var query = Query.And(query1, query2);
4           
5  var list = collection.FindAs(typeof(Student), query);
Nach dem Login kopieren

方式2:通过linq

1   var qList = (from c in collection.AsQueryable()
2                      where c.Age > 10 && c.Age 

    <p class="copyright">
        原文地址:MongoDB的增删改查, 感谢原作者分享。
    </p>
    
    


Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!