У меня есть хранимую функцию JS в MongoDB, как и в Optimistic Loop pattern
Мне нужно, чтобы выполнить его с MongoDB C#/.NET driver 2.0.1 -MongoDb версии 3.0.5-.MongoDB .Net Driver 2.x - Как выполнить хранимую функцию JS
Я могу выполнить его из MongoDB оболочки так:
myFunc({by:"Bob", on:ISODate("2015-10-02T01:11:18.965Z")}, db.myCollection)
db.Eval
был deprecated since 3.x:
я подумал, что db.runCommand()
может делать то, что я хочу. Но не могу понять, как на самом деле представлять вызов функции с JsonCommand
/ObjectCommand
/BsonDocumentCommand
RunCommand(String)
, похоже, устарели.
Так как я могу запустить хранимую функцию с клиента C# /. NET?
Edit 1: Я мог бы реализовать шаблон в C#, но не хотите, накладные расходы чтения, прежде чем писать, конечно, это будет быстрее, если работать на сервере MongoDB.
Edit 2: До сих пор я понял, что заявление в Edit 1 является неправильным, потому что запуск функции от mongo.exe
клиента будет делать то же самое количество вызовов, если я реализую шаблон в C#, поэтому нет никакой выгоды реализации автоматической инкрементации счетчики с использованием JS-функций.
Если вы работаете как то из «оболочки», то это не на самом деле работает на «сервер», но на «клиента» (то есть то, что [ 'db.loadServerScripts()'] (http://docs.mongodb.org/manual/reference/method/db.loadServerScripts/#db.loadServerScripts)), единственный способ, которым все работает на сервере, - это «eval "или в процессоре JavaScript, например mapReduce или, возможно,' $ where'. Оба имеют ограничения и «предупреждения». Практически все, что вы утверждаете, что вам нужен «серверный» JavaScript-код в моде, лучше реализуется в собственных методах. –
@BlakesSeven, да, я запускаю материал из оболочки, правильно ли я правильно понял, что если бы я должен был использовать шаблон оптимистического цикла в C# (двойное путешествие для чтения и записи), то я не буду набирать скорость (экономя количество поездок), так же, как и происходят из оболочки? Благодаря! –
Что вам нужно «правильно» понять, так это то, что есть проблемы с выполнением кода на стороне сервера в движке JavaScript, в соответствии с любыми операциями управления потоком, которые, по вашему мнению, вы пишете. Вы только «думаете» вам это нужно из-за вашего нынешнего дизайна и подхода к проблеме, которую вы действительно имеете. То, что вы действительно должны «делать», - это пересмотреть требуемый дизайн и, возможно, задавать вопросы о проблемах, которые вы хотите решить, которые в первую очередь привели вас к вашему дизайну. Скорее всего, если вы это сделаете, другие будут предлагать лучшие способы. Вещи получают «устаревшие» по уважительным причинам. –