Tag: mongodb

如何在mongoid中使用或条件进行查询

如何在Mongoid中使用或条件进行查询。

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

我正在考虑在一个新项目上使用mongodb,但在钻研之前,我想知道它是否支持一些关键function。 我知道您不需要迁移,并且您可以添加嵌入对象,但是所有这些意味着它的行为就像’accepts_nested_attributes_for’方法总是在那里一样? 您是否知道我应该注意的任何其他杀手function会影响我或者反对MongoDB? 这是我最近发现的一篇文章,其他人也可能对以下内容感兴趣: http://railstips.org/blog/archives/2009/12/18/why-i-think-mongo-is-to-databases-what-rails-was-to-frameworks/

使用Mongoid,我可以“update_all”一次将值推送到多个条目的数组字段吗?

使用Mongoid,是否可以使用“update_all”将值推送到符合特定条件的所有条目的数组字段? 例: class Foo field :username field :bar, :type => Array def update_all_bars array_of_names = [‘foo’,’bar’,’baz’] Foo.any_in(username: foo).each do |f| f.push(:bar,’my_new_val’) end end end 我想知道是否有办法立即更新所有用户(将值’my_new_val’推送到每个匹配条目的“foo”字段)使用“update_all”(或类似的东西)而不是循环通过它们来更新他们一次一个。 我已经尝试了所有我能想到的东西,到目前为止还没有运气。 谢谢

嵌入式文档vs mongoid中的哈希数据类型

我找不到任何关于此的博客文章或文档。 它们,嵌入式文档和散列数据类型都非常相似。 每个人的利益或限制是什么? 考虑我的架构设计: class HistoryTracker include ::Mongoid::Document include ::Mongoid::Timestamps field :modifier, type: Hash, default: {} field :original, type: Hash, default: {} field :modified, type: Hash, default: {} field :changeset, type: Hash, default: {} end 我应该在这个HistoryTracker类中创建几个嵌入式文档吗? 或者只是用它? 索引怎么样?

限制聚合聚合中的聚合

我有这样的集合,但有更多的数据。 { _id: ObjectId(“db759d014f70743495ef1000”), tracked_item_origin: “winword”, tracked_item_type: “Software”, machine_user: “mmm.mmm”, organization_id: ObjectId(“a91864df4f7074b33b020000”), group_id: ObjectId(“20ea74df4f7074b33b520000”), tracked_item_id: ObjectId(“1a050df94f70748419140000”), tracked_item_name: “Word”, duration: 9540, } { _id: ObjectId(“2b769d014f70743495fa1000”), tracked_item_origin: “http://www.facebook.com”, tracked_item_type: “Site”, machine_user: “gabriel.mello”, organization_id: ObjectId(“a91864df4f7074b33b020000”), group_id: ObjectId(“3f6a64df4f7074b33b040000”), tracked_item_id: ObjectId(“6f3466df4f7074b33b080000”), tracked_item_name: “Facebook”, duration: 7920, } 我做一个聚合,ho返回分组数据,如下所示: {“_id”=>{“tracked_item_type”=>”Site”, “tracked_item_name”=>”Twitter”}, “duration”=>288540}, {“_id”=>{“tracked_item_type”=>”Site”, “tracked_item_name”=>”ANoticia”}, “duration”=>237300}, {“_id”=>{“tracked_item_type”=>”Site”, “tracked_item_name”=>”Facebook”}, “duration”=>203460}, {“_id”=>{“tracked_item_type”=>”Software”, “tracked_item_name”=>”Word”}, “duration”=>269760}, {“_id”=>{“tracked_item_type”=>”Software”, […]

如何使用Ruby将MongoDB中的字符串存储为Date类型?

我有一个字符串,我正在从日志文件中解析出来,如下所示: “[22 / May / 2011:23:02:21 +0000]” 什么是最好的方法(Ruby中的例子最受欢迎,因为我正在使用Mongo Ruby驱动程序)将MongoDB作为本机日期类型存储起来?

MongoDB聚合/展开/组/项目查询组合

我有以下格式的集合中的记录: “_id” : “2013-05-23”, “authors_who_sold_books” : [ { “id” : “Charles Dickens”, “num_sold” : 1, “customers” : [ { “time_bought” : 1368627290, “customer_id” : 9715923 } ] }, { “id” : “JRR Tolkien”, “num_sold” : 2, “customers” : [ { “date_bought” : 1368540890, “customer_id” : 9872345 }, { “date_bought” : 1368537290, “customer_id” : 9163893 } […]

如何处理从mongo中返回的任意哈希(使用mgo)?

我可以找到的所有引用构造一个结构来保存返回值,假设每个返回的记录具有相同的模式。 如果它们真的是文档并且除了可能的一些可查询的一致元数据属性之外没有一致的模式,我该如何处理该返回值? 例如:这个https://groups.google.com/forum/#!msg/mgo-users/KirqfCSlKFc/t2l3l4yxFRwJ假定您有一组时间戳。 如果它是一个数组,其中一些值是时间戳而一些是字符串呢? 在ruby中,我只是将整个返回的记录视为任意哈希并按键处理它。 我该怎么办呢?

如何从MongoDB打印所有键和值?

例如,我有一个集合中的记录: { “_id” : ObjectId(“4f0224ad6f85ce027e000031”), “monday” : “7am” } { “_id” : ObjectId(“4f0224ad6f85ce027e00002e”), “tuesday” : “11.40am” } { “_id” : ObjectId(“4f0224ad6f85ce027e000025”), “wednestay” : “12am”, “thursday” : “1pm” } 在控制器中,我将抓住所有项目,在视图中我想在形状中打印它们: monday 7am tuesday 11.40am wednesday 12am thursday 1pm 我的应用程序正在Rails上运行。 存在任何快速和优雅的方式吗? 谢谢! 编辑这对我有用 : records = collection.where(‘something’ => variable) records.each do |rec| puts rec._id end 这不是 records […]

什么时候Mongoid实际上是对MongoDb进行查询

我很难找到明确说明Mongoid实际查询Mongo数据库的文档。 假设我有一个名为Projects的模型,它引用了另一个名为Website的模型,如下所示 class Project include Mongoid::Document … has_one :website … end class Website include Mongoid::Document … belongs_to :project … end 如果使用我的Project模型,我有许多访问Website对象属性的方法,我的问题是,Mongodb的实际查询出现在哪一行: class Project … def website_url @website ||= self.website #Does the query occur here? website.url # Or does is occur here? end 我可以预见到,在请求对象的实际属性或属性非常有益之前,推迟查询数据库的情况。 但是,我不知道如何测试这个以确定自己的答案。 谢谢