标签: mongoid

执行两个Mongoid"any_in"查询的OR

如果我有两个查询,如下所示:

Store.any_in(:store_id => @user.stores_followed)
Store.any_in(:store_id => @category.stores)
Run Code Online (Sandbox Code Playgroud)

如何使用any_of将它们加入OR?我试过这个但事实并非如此.我试过了

Store.any_of({:store_id.any_in => @user.stores_followed}, 
  {:store_id.any_in => @category.stores})
Run Code Online (Sandbox Code Playgroud)

ruby mongodb mongoid

4
推荐指数
2
解决办法
2517
查看次数

具有用户友谊状态属性的Mongoid自引用

使用Mongo和Rails,我会建立一个像facebook这样的友谊系统: - 在建立友谊之前,使用必须接受友谊请求

我找到了很多代码来做关系,但从来没有关系的属性......

您是否有任何想法或线索如何做到这一点,以"尊重"NoSQL概念

谢谢您的帮助

entity-relationship many-to-many ruby-on-rails mongodb mongoid

4
推荐指数
2
解决办法
1192
查看次数

在Ruby哈希中提取`Moped :: BSON :: Document`属性

在Mongoid 3.0.21中,如何将所有模型的属性作为纯Ruby Hash

呼叫#attributes#raw_attributes返回Moped::BSON::Document.虽然它实际上延伸Hash,几个哈希方法不能按预期工作.特别是#except返回未修改self,而不是散列给定键的哈希.

更新:Moped::BSON::Document正确继承的行为Hash.我试图用符号命名属性,而不是字符串,这就是为什么#except不起作用.不久:不except('pictures'),不except(:pictures).

ruby ruby-on-rails mongoid

4
推荐指数
1
解决办法
3068
查看次数

使用Mongoid进行全文搜索

有没有办法通过Mongoid使用MongoDB(v 2.4)的全文搜索功能?我尝试了谷歌组链接的答案,但一直收到以下错误.

在一个选项卡中,我启动了mongod:~$ mongod --setParameter textSearchEnabled=true 导致错误的行: Article.mongo_session.command({:text => {:search => 'Ruby'}})

如果有人能指出runCommand在Ruby中执行MongoDB的方法会很棒,这样我就可以直接运行命令了db.collection.runCommand( "text", { search: <string> })

failed with error 13111: "exception: wrong type for field (text) 3 != 2"

See https://github.com/mongodb/mongo/blob/master/docs/errors.md
for details about this error.
Run Code Online (Sandbox Code Playgroud)

ruby mongodb mongoid

4
推荐指数
1
解决办法
4122
查看次数

MongoDB:对数组元素进行匹配和排序?

我有一些“产品”对象:

{ name: 'ProductA',
  social_stats: [
    { name: 'facebook',
      shares: 60
    },
    { name: 'twitter',
      shares: 0
    }
  ]
}

{ name: 'ProductB',
  social_stats: [
    { name: 'facebook',
      shares: 0
    },
    { name: 'twitter',
      shares: 30
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想查询“Facebook 上分享最多的产品”和“Twitter 上分享最多的产品”,总是按分享次数从多到少排序。

所以我对 Facebook 的第一个查询如下所示:

db.videos.find({
  _id: {
    social_stats: {
      $elemMatch: {
        name: 'facebook'
      }
    }
  }
).sort( {
  social_stats: {
    shares: -1
  }
})
Run Code Online (Sandbox Code Playgroud)

产量:

{ name: 'ProductA' }
{ name: 'ProductB' }
Run Code Online (Sandbox Code Playgroud)

这是“正确的”,但是当我对“twitter”运行相同的查询时,我期望 B->A,但收到与上面相同的输出。它似乎没有按照我的意图将 where 和排序逻辑一起应用,即“按与‘twitter’匹配的social_stat 元素排序”。

我在寻找什么 …

mongodb mongoid

4
推荐指数
1
解决办法
3092
查看次数

Bundler找不到gem"activemodel"的兼容版本

试图在rails 4.1中安装mongoid 3.1.6

Bundler找不到gem"activemodel"的兼容版本:在Gemfile中:

mongoid (~> 3.1.6) ruby depends on
  activemodel (~> 3.2) ruby

rails (= 4.1.0) ruby depends on
  activerecord (= 4.1.0) ruby depends on
    activemodel (4.1.0)
Run Code Online (Sandbox Code Playgroud)

当mongoid降级到1.0.6时它工作正常,但我需要在轨道4.1中使用mongoid 3.1.6.有没有解决这个问题的解决方案?

ruby-on-rails mongoid mongoid3 ruby-on-rails-4 ruby-2.1

4
推荐指数
1
解决办法
6184
查看次数

如何使用 mongoid/mongodb 批量更新/更新插入?

我有一个包含数百万Order文档的数据库。我用以下方法批量插入它们:

Order.collection.insert([
                         {:_id=>BSON::ObjectId('5471944843687229cdfb0000'), :status=>"open", :name=> "Benny"},
                         {:_id=>BSON::ObjectId('5471944843687229cdfc0000'), :status=>"open", :name=> "Allan"}
                        ])
Run Code Online (Sandbox Code Playgroud)

我经常需要更新status订单的属性。使用该方法单独更新它们的效率很低update_attribute

如何批量更新多个 MongoDB 文档?

所需的解决方案可以用下面的“虚构”代码最好地描述:

# IMPORTANT: The exemplified upsert method does not exist

Order.collection.upsert([
                         {:_id=>BSON::ObjectId('5471944843687229cdfb0000'), :status=>"closed"},
                         {:_id=>BSON::ObjectId('5471944843687229cdfc0000'), :status=>"some_other_status"}
                        ])
Run Code Online (Sandbox Code Playgroud)

仅供参考,这篇文章中可能有类似的问题/答案,但老实说我不遵循答案。

ruby ruby-on-rails mongodb mongoid

4
推荐指数
1
解决办法
7037
查看次数

Mongoid 5.0 支持 $lookup

有谁知道最新的 5.0 版本的 Mongoid gem 是否支持$lookup

没有提到mongoid 文档

mongodb mongoid

4
推荐指数
1
解决办法
1408
查看次数

一个mongodb数组字段可以保存多少个BSON ObjectIds

我打算在这个数组中为外键 ID 保存大量的 ID。所以,我只是检查我可以保存在字段数组中的 BSON::ObjectIds 的最大数量是多少。比如说

department_ids: [BSON::OBjectId('57cf6d6e8315292136000001'), BSON::OBjectId('57cf6d6e8315292136000002') ...... ]
Run Code Online (Sandbox Code Playgroud)

mongodb mongoid

4
推荐指数
1
解决办法
1343
查看次数

带有mongoid的rails 3中的嵌套属性问题(嵌套对象未保存)

所以我在RailsCast中有一个关于嵌套表单的简单应用程序.问题是,当我提交表格(带有调查和问题)时,问题不会被保存.

我的模型(调查,有很多问题):

class Survey
  include Mongoid::Document
  field :name
  has_many :questions, :dependent => :destroy
  accepts_nested_attributes_for :questions, :allow_destroy => true
end

class Question
  include Mongoid::Document
  field :content
  belongs_to :survey
end
Run Code Online (Sandbox Code Playgroud)

和调查控制员:

def new
    @survey = Survey.new
    3.times {@survey.questions.build}
....
Run Code Online (Sandbox Code Playgroud)

和一个观点:

<%= form_for(@survey) do |f| %>
    <%= f.fields_for :questions do |builder| %>
    <%= builder.label :content, "Question" %><br />
    <%= builder.text_area :content, :rows => 3 %><br />
    <%= builder.check_box :_destroy %>
    <%= builder.label :_destroy, "Remove Question" …
Run Code Online (Sandbox Code Playgroud)

nested-attributes mongoid ruby-on-rails-3

3
推荐指数
1
解决办法
2964
查看次数