2011-10-30 12 views
5

Tôi chỉ muốn thực hiện các truy vấn MongoDB thuần túy thông qua trình điều khiển .net (C#) của MongoDb 10Gen.Sử dụng các lệnh shell MongoDB trên trình điều khiển MongoDB 10Gen

Ví dụ: Tôi muốn sử dụng lệnh dưới đây trên trình điều khiển

db.people.update({ name:"Joe" }, { $inc: { n : 1 } }); 

Tôi không chắc làm cách nào tôi có thể thực hiện việc này. Tôi không quan tâm đến làm thế nào để làm thông qua các lớp api cấp cao.

+0

trình điều khiển/ngôn ngữ nào? – AlphaB

+0

cho .net C# driver – AnyOne

Trả lời

3

Trình điều khiển C# (hoặc bất kỳ trình điều khiển nào khác) không có ý định "chạy trực tiếp" các lệnh trình bao mongo. Đó là những gì vỏ là cho. Những gì bạn cần làm là dịch các lệnh shell mongo thành các câu lệnh C# tương đương.

Nếu bạn muốn chạy các lệnh shell mongo, hãy chạy chúng trong trình bao mongo.

+0

Trình điều khiển C# đã không xây dựng các truy vấn vỏ và sau đó gửi nó tới mongodb để thực thi? Nếu vậy tại sao trình điều khiển không cho phép tôi thực thi truy vấn shell? – AnyOne

+0

Giao tiếp giữa trình điều khiển và máy chủ thông qua giao thức dây. Xem: http://www.mongodb.org/display/DOCS/Mongo+Wire+Protocol. Ngay cả vỏ mongo cũng phải dịch các lệnh shell mongo sang giao thức dây trước khi gửi chúng đến máy chủ. –

1

Bạn có thể tạo truy vấn i C# bằng giao diện Truy vấn thông thạo. Những truy vấn đó sau đó có thể được kích hoạt về phía databse bằng cách sử dụng phương thức Find trên một bộ sưu tập Mongo. Ví dụ:

var myDatabase = MongoDatabase.Create(connectionString); 
var myCollection = database.GetCollection<MyType>("myCollectionNameInDB"); 
var myCollection = 
var myQuery = Query.EQ("name", "joe"); 
var someDataFromDB = myCollection.Find(myQuery).FirstOrDefault(); 

Truy vấn cũng có thể được sử dụng với các bản cập nhật. Ví dụ:

myCollection.Update(
        myQuery, 
        Update.Replace(new MyType(){...}), 
        UpdateFlags.Upsert 
      ); 

Điều này vừa thay thế toàn bộ tài liệu. Để kiểm soát tốt, bạn có thể sử dụng API cập nhật kết hợp với phương thức FindAndModify. Ví dụ:

var myUpdate = Update.Inc("n", 1); 
var result = myCollection.FindAndModify(
        myQuery, 
        SortBy.Descending("name"); 
        myUpdate, 
        true // return new document 
      ); 

Kiểm tra http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial để biết thêm thông tin.

+0

Cảm ơn nhưng tôi đã được hỏi làm thế nào để thực hiện truy vấn thuần túy thông qua trình điều khiển – AnyOne

+0

Phải, bạn đã thử phương pháp Đánh giá trên đối tượng cơ sở dữ liệu chưa. –

+0

Tôi đã thử vài cách khác nhau trên phương pháp Eval và RunCommand nhưng không may mắn vẫn còn – AnyOne