Комментарии 20
«Я бы сказал неожиданно просто.»
А вы не используете NoRM? Вот именно с него я офигел, как просто с Монго работать из .NET :) Плюс, NoRM не несет никакого over-kill'а в производительности, в отличие от ORM традиционных RDBMS.
А вы не используете NoRM? Вот именно с него я офигел, как просто с Монго работать из .NET :) Плюс, NoRM не несет никакого over-kill'а в производительности, в отличие от ORM традиционных RDBMS.
0
NoRM отстает от официального драйвера по фичам — там до сих пор невозможно работать с шаред инстансами. Очень огорчает, что NoRM развивает только один человек, те же решения для Ruby комитят несколько человек.
0
Зато в NoRM есть реально работающий Linq.
0
Реализация Linq есть и для стандартного драйвера https://github.com/craiggwilson/fluent-mongo
0
NoRM всё равно порядочно допиливать надо, в первую очередь с области поддержки маппинга.
Не знаю насчёт допиливания стандартного драйвера, надо на него посмотреть.
Как-то и то и то по сравнению с Mongoid, скажем, очень печально.
Не знаю насчёт допиливания стандартного драйвера, надо на него посмотреть.
Как-то и то и то по сравнению с Mongoid, скажем, очень печально.
0
Чем же печально то?
Помоему active record — это печально (взято с mongoid.org/docs/persistence/):
Mongoid::Document
class Person
include Mongoid::Document
field :first_name
field :middle_initial
field :last_name
embeds_one :email
embeds_many :addresses
end
person = Person.where(:first_name => «Dudley»).first
person.last_name = «Moore»
person.save
Помоему active record — это печально (взято с mongoid.org/docs/persistence/):
Mongoid::Document
class Person
include Mongoid::Document
field :first_name
field :middle_initial
field :last_name
embeds_one :email
embeds_many :addresses
end
person = Person.where(:first_name => «Dudley»).first
person.last_name = «Moore»
person.save
0
Ну LINQ нет, это понятно — у них его никогда не было. Я скорее про
1. mongoid.org/docs/associations/ — Relational Associations
2. mongoid.org/docs/extras/
Особенно Relational Associations, я бы даже сказал, поддержка частичной денормализации.
В принципе если я решу использовать Norm и дальше, мы его допилим так или иначе.
1. mongoid.org/docs/associations/ — Relational Associations
2. mongoid.org/docs/extras/
Особенно Relational Associations, я бы даже сказал, поддержка частичной денормализации.
В принципе если я решу использовать Norm и дальше, мы его допилим так или иначе.
0
Ну если честно не вижу таких прямо невероятных бенефитов, ну есть у меня ссылка на связанный объект в другой коллекции… да и в рамках представленных примеров выглядит это надуманно. Про денормализацию www.mongodb.org/display/DOCS/MongoDB+Data+Modeling+and+Rails#MongoDBDataModelingandRails-ANoteonDenormalization
0
Ну у меня довольно стандартный пример, у объекта X есть Author, который User.
В Norm это делается не очень просто.
Плюс по поводу денормализации (пример за пределами способностей даже mongoid): если я храню имя Author'а прямо в объекте X, то хотелось бы, чтобы получившийся объект User мог выдать имя без какого-либо lazy load.
Но в принципе в таком виде это тривиально прикрутить, и сделаем.
В Norm это делается не очень просто.
Плюс по поводу денормализации (пример за пределами способностей даже mongoid): если я храню имя Author'а прямо в объекте X, то хотелось бы, чтобы получившийся объект User мог выдать имя без какого-либо lazy load.
Но в принципе в таком виде это тривиально прикрутить, и сделаем.
0
Почему 1? Я вижу 80 forks и 6 pull requests.
А если хочется что-то добавить, почему бы и не добавить?
А если хочется что-то добавить, почему бы и не добавить?
0
А NoRM поддерживает «частичную загрузку документов» (см. 1 часть поста)?
0
Интересно, спасибо.
Чем больше работаю с sql, тем больше заглядываюсь на документо ориентированные базы данных )
Чем больше работаю с sql, тем больше заглядываюсь на документо ориентированные базы данных )
0
Если вы хотите обновить объект, тогда лучше использовать update, а не save целого объекта.
Это будет гораздо быстрее.
Кстати, интересно, как сработает Query.And если в нем будет несколько условий по одному и тому же полю?
Например:
Query.And(
Query.LTE(«HighLevelCodes.Min», nCodeValue),
Query.GTE(«HighLevelCodes.Min», nCodeValue-100)
)
Это будет гораздо быстрее.
Кстати, интересно, как сработает Query.And если в нем будет несколько условий по одному и тому же полю?
Например:
Query.And(
Query.LTE(«HighLevelCodes.Min», nCodeValue),
Query.GTE(«HighLevelCodes.Min», nCodeValue-100)
)
0
Это неправильно, я не помню точно выдаст он ошибку или просто выбенет неправильно, но в данном случае правильный запрос будет
var q =Query.LTE(«HighLevelCodes.Min», nCodeValue).GTE(«HighLevelCodes.Min», nCodeValue-100);
var q =Query.LTE(«HighLevelCodes.Min», nCodeValue).GTE(«HighLevelCodes.Min», nCodeValue-100);
0
Есть еще один хитрый момент. Если через js в mongo shell сохранить документ, одно из полей которого целое число, то в bson оно сохранится как double из-за особенностей javascript при работе с числами. Соответственно при попытке получить этот объект из C# получаем эксепшин.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
MongoDB и C# driver от 10gen, неочевидные моменты