MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bisakah saya melakukan kueri teks dengan driver mongodb c#?

Tidak ada fungsi yang sama persis seperti yang Anda inginkan.

Tetapi Anda dapat membuat BsonDocument dari json untuk kueri:

var jsonQuery = "{ x : 3, y : 'abc' }";
BsonDocument doc = MongoDB.Bson.Serialization
                   .BsonSerializer.Deserialize<BsonDocument>(jsonQuery);

Dan setelah itu Anda dapat membuat kueri dari BsonDocument:

var query = new QueryComplete(doc); // or probably Query.Wrap(doc);

Hal yang sama dapat Anda lakukan untuk ekspresi sortir:

var jsonOrder = "{ x : 1 }";
BsonDocument orderDoc = BsonSerializer.Deserialize<BsonDocument>(jsonQuery);

var sortExpr = new SortByWrapper(orderDoc);

Anda juga dapat membuat metode ekstensi untuk MongoCollection seperti ini:

public static List<T> GetItems<T>(this MongoCollection collection, string queryString, string orderString) where T : class 
{
    var queryDoc = BsonSerializer.Deserialize<BsonDocument>(queryString);
    var orderDoc = BsonSerializer.Deserialize<BsonDocument>(orderString);

    //as of version 1.8 you should use MongoDB.Driver.QueryDocument instead (thanks to @Erik Hunter)
    var query = new QueryComplete(queryDoc);
    var order = new SortByWrapper(orderDoc);

    var cursor = collection.FindAs<T>(query);
    cursor.SetSortOrder(order);

    return cursor.ToList();
}

Saya tidak menguji kode di atas. Akan melakukannya nanti jika perlu.

Pembaruan:

Baru saja menguji kode di atas, berhasil!

Anda dapat menggunakannya seperti ini:

var server = MongoServer.Create("mongodb://localhost:27020");
var collection= server.GetDatabase("examples").GetCollection("SO");

var items = collection.GetItems<DocType>("{ x : 3, y : 'abc' }", "{ x : 1 }");


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 3 Cara Mengembalikan Sampel Acak Dokumen dari Koleksi MongoDB

  2. Mengakses MongoDB dari Go

  3. MongoDB Tercepat di Azure!

  4. Agregasi MongoDB di Loopback

  5. Tutup koneksi luwak dengan benar setelah Anda selesai