我希望能够通过MongoDb 10Gen的.net(c#)驱动程序简单地执行纯MongoDB查询。
例如,我想在驱动程序上使用以下命令:
db.people.update( { name:"Joe" }, { $inc: { n : 1 } } );
我不确定如何做到这一点。我对如何使用高级API类并不感兴趣。
我希望能够通过MongoDb 10Gen的.net(c#)驱动程序简单地执行纯MongoDB查询。
例如,我想在驱动程序上使用以下命令:
db.people.update( { name:"Joe" }, { $inc: { n : 1 } } );
我不确定如何做到这一点。我对如何使用高级API类并不感兴趣。
C#驱动程序(或任何其他驱动程序)不是用于“直接”运行mongo shell命令的。这就是shell的作用。您需要做的是将mongo shell命令转换为等效的C#语句。
如果您想运行mongo shell命令,请在mongo shell中运行它们。
您可以使用流畅的查询接口在C#中构建查询。然后,可以使用Mongo集合上的Find方法将这些查询发送到数据库。例如:
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();
查询也可以与更新一起使用。例如:
myCollection.Update(
myQuery,
Update.Replace(new MyType(){...}),
UpdateFlags.Upsert
);
这将替换整个文档。如果需要更细粒度的控制,您可以使用Update API与FindAndModify方法相结合。例如:
var myUpdate = Update.Inc("n", 1);
var result = myCollection.FindAndModify(
myQuery,
SortBy.Descending("name");
myUpdate,
true // return new document
);
请查看http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial以获取更多信息。