问题标签 [mongomapper]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
6076 浏览

ruby-on-rails - MongoMapper 和迁移

我正在构建一个使用 MongoDB 作为后端和 MongoMapper 作为 ORM 工具的 Rails 应用程序。假设在版本 1 中,我定义了以下模型:

后来在版本 2 中,我意识到我需要模型上的新必需键。因此,在版本 2 中,SomeModel 现在看起来像这样:

如何迁移所有现有数据以包含 some_new_key?假设我知道如何为所有现有文档设置合理的默认值。更进一步,假设在版本 3 中,我意识到我真的根本不需要 some_key。所以,现在模型看起来像这样

但是我数据库中的所有现有记录都为 some_key 设置了值,此时它只是在浪费空间。我如何回收该空间?

使用 ActiveRecord,我将创建迁移以添加 some_new_key 的初始值(在 version1 -> version2 迁移中)并删除 some_key 的值(在 version2 -> version3 迁移中)。

使用 MongoDB/MongoMapper 执行此操作的适当方法是什么?在我看来,一些跟踪已运行迁移的方法仍然是必要的。这样的事情存在吗?

编辑:我认为人们错过了我的问题的重点。有时您希望能够在数据库上运行脚本来更改或重组其中的数据。我在上面给出了两个示例,一个是添加了新的必需密钥,一个是可以删除密钥并可以回收空间的示例。您如何管理运行这些脚本?ActiveRecord 迁移为您提供了一种简单的方法来运行这些脚本并确定哪些脚本已经运行以及哪些脚本尚未运行。我显然可以编写一个对数据库进行任何更新的 Mongo 脚本,但我正在寻找的是一个像迁移这样的框架,它可以让我跟踪哪些升级脚本已经运行。

0 投票
3 回答
3833 浏览

ruby-on-rails - 如何删除 mongomapper 中的嵌入文档?

我用 mongomapper 运行一个 sinatra 应用程序。我有名为 Movie(Document) 和 Cover(EmbeddedDocument) 的模型。我将封面嵌入到电影中使用

这很好用。

当我点击@movies.covers 时,我得到了嵌入文档的数组。但我无法销毁嵌入的文档。我试过这样的事情:

如何摧毁它?如果有人启发我如何更新嵌入式文档,那就太好了。

0 投票
14 回答
20470 浏览

ruby - Mongoid 还是 MongoMapper?

我尝试过 MongoMapper,它功能齐全(提供几乎所有 AR 功能),但我对使用大型数据集时的性能不太满意。有没有人和Mongoid比较过?任何性能提升?

0 投票
2 回答
3343 浏览

mongodb - 何时使用嵌入式文档?

我试图弄清楚如何为我正在处理的网站布局我的数据库。这是我的模型:

我相信Like应该嵌入某个地方,但我很难选择一个,因为我想摆脱它的功能。

尽管使用 EmbeddedDocument 时会出现问题,但您会丢失find, 和其他有用的方法,并且不能将其嵌入到两个模型中。所以只有在 中Item,我需要运行它(但不能):

find_by_user_id将抛出未定义的方法。因此,如果我要将它嵌入到我的User中,我仍然无法做到这一点。

所以我得出结论可能会这样做:

但这似乎我仍在尝试以旧的 MySQL 方式做事。谁能给我一个关于最有可能用 MongoMapper 进行编码的方法的观点?

提前致谢!

0 投票
1 回答
1278 浏览

mongomapper - MongoMapper父继承

我试图通过使用 MongoMapper 的类继承来获得更好和有条理的结果,但是遇到了一些麻烦。

当我运行以下命令时,它们并没有完全返回我所期望的。

它们都是相同的结果,我希望Item.all列出所有结果,因此包括它自己Picture、 和Video。但是,如果该项目实际上是 a Picture,我希望它在我运行时返回,Picture.all而不是在我运行时返回Video.all。你明白我的意思吗?

我是否误解了继承在这里的工作方式?如果我是复制这种行为的最佳方法是什么?我正在尝试遵循这一点(第 2 点)作为我想要这项工作的指导方针。我假设他可以运行Link.all以查找所有链接,而不是包含所有其他继承自Item. 我错了吗?

0 投票
3 回答
3176 浏览

ruby-on-rails - MongoMapper has_many 关联

我对 mongomapper 关联有疑问。我有一个类名用户和另一个命名模型。用户有很多型号,但...

类代码(简化):

我做错了什么?

0 投票
3 回答
1461 浏览

ruby - Mongoapper查询集合问题

当我定义用户 has_many 会议时,它会自动创建一个与用户集合相关的“user_id”键/值对。除了我不能使用这个值运行任何 mongo_mapper 发现,没有它返回 nil 或 []。

Meeting.first(:user_id => "1234")

Meeting.all(:user_id => "1234")

Meeting.find(:user_id => "1234")

全部归零。还有其他语法吗?基本上我无法对自动生成的关联 ObjectId 运行查询。

0 投票
1 回答
1317 浏览

ruby-on-rails - MongoMapper(或任何其他 Mongodb 适配器)是否有类似“accepts_nested_attributes_for”的方法?

我正在考虑在一个新项目中使用 mongodb,但在深入研究之前,我想知道它是否支持一些关键功能。我知道您不需要迁移,并且可以添加嵌入式对象,...但这是否意味着它的行为也好像始终存在“accepts_nested_attributes_for”方法?

你知道我应该知道的任何其他杀手级特性会影响我支持或反对 MongoDB 吗?

这是我最近知道的一篇文章,其他人也可能对此感兴趣:

http://railstips.org/blog/archives/2009/12/18/why-i-think-mongo-is-to-databases-what-rails-was-to-frameworks/

0 投票
1 回答
1290 浏览

ruby-on-rails - mongoDB,乘客和phusion乘客的性能问题

我只是偶然发现了 mongodb-user 列表上的一个姿势,其中讨论了将 mongoDB 与 MongoMapper 一起使用时的乘客和分叉。

我只是想提醒一下,如果 Rails 开发人员将 MongoDB 与Passenger 一起使用,他们需要调整他们的“environment.rb”。

默认情况下,Passenger 使用 fork() 生成 Ruby 进程。而且,由于 fork () 共享文件描述符,Rails 应用程序必须在新的“进程”中重新打开与 MongoDB 的连接。

http://groups.google.com/group/mongodb-user/browse_thread/thread/f31e2d23de38136a

任何人都知道 mongoDB 和乘客是否仍然存在问题,或者为乘客提供 mongoDB-rails-application 的最佳方式是什么?

0 投票
1 回答
611 浏览

ruby-on-rails - MongoMapper 的继承:搜索父类

使用 mongomapper/rails 继承时将类名保存在字段中是否有意义?

如果执行了对 Item 的搜索,MongoMapper 将返回 Item Objects。目前尚不清楚,它们是哪种物体。如果我们想显示一个图标或类似的东西来区分项目,可以通过将类名保存在数据库中来完成。这有意义吗,还是有更好的方法?