MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tôi có thể thực hiện truy vấn văn bản với trình điều khiển mongodb c # không

Không có chức năng chính xác giống như bạn muốn.

Nhưng bạn có thể tạo BsonDocument từ json cho truy vấn:

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

Và sau đó, bạn có thể tạo truy vấn từ BsonDocument:

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

Bạn cũng có thể làm tương tự đối với biểu thức sắp xếp:

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

var sortExpr = new SortByWrapper(orderDoc);

Ngoài ra, bạn có thể tạo phương thức mở rộng cho MongoCollection như sau:

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();
}

Tôi đã không kiểm tra mã ở trên. Sẽ làm điều đó sau nếu cần.

Cập nhật:

Chỉ cần kiểm tra mã ở trên, nó đang hoạt động!

Bạn có thể sử dụng nó như thế này:

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. Đếm kết quả với Trình điều khiển Java MongoDB 3.0

  2. C # + MongoDB - ObjectId mà không sử dụng MongoDB DataTypes / Attributes

  3. Trả về số lượng bản ghi có hạn của một loại nhất định, nhưng không giới hạn số lượng bản ghi khác?

  4. Làm cách nào để tắt ghi nhật ký trình điều khiển java mongoDB?

  5. Liên kết &Tạo MongoDB tham gia bằng SQL:Phần 3