Использование команд оболочки MongoDB в драйвере MongoDB 10Gen - PullRequest
5 голосов
/ 31 октября 2011

Я хочу просто выполнить чистые запросы MongoDB через драйвер .net (c #) MongoDb 10Gen.

Например.Я хочу использовать приведенную ниже команду для драйвера

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

Я не уверен, как я могу это сделать.Меня не интересует, как это сделать с помощью классов API высокого уровня.

Ответы [ 2 ]

3 голосов
/ 07 ноября 2011

Драйвер C # (или любой другой драйвер) не предназначен для "непосредственного" запуска команд оболочки mongo.Для этого и есть оболочка.Вам нужно перевести команды оболочки mongo в эквивалентные операторы C #.

Если вы хотите запустить команды оболочки mongo, запустите их в оболочке mongo.

1 голос
/ 31 октября 2011

Вы можете создавать запросы i c #, используя свободный интерфейс Query. Затем этот запрос может быть запущен в направлении базы данных с помощью метода Find в коллекции Mongo. Например:

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

Запрос также можно использовать с обновлениями. E.g.:

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

Это только заменило весь документ. Для детального управления вы можете использовать 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 для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...