草庐IT

mongoid4

全部标签

ruby-on-rails - Mongoid - 阵列管理?插入唯一值,如果存在则删除值?

我正在尝试做一些我认为相当简单的事情:1)仅当该值不存在时才在数组字段中插入该值2)删除数组中存在的值我只是不知道如何做这些事情......目前我只是插入我的值而不检查它是否已经存在:myArray谢谢,亚历克斯ps:使用Rails3.0.3、mongo1.1.5和mongoid2.0.0.rc5ps2:这是实现我想要的mongodb语法,但我不知道如何在mongoid中做到这一点{$addToSet:{field:value}}仅当它不在数组中时才向数组添加值,如果field是现有数组,否则如果field不存在,则将field设置为数组值。如果字段存在但不是数组,则会引发错误条件。添

ruby-on-rails - Mongoid "criteria"是如何工作的?

我正在尝试做一些直接的事情,例如:User.all(:criteria=>{:project_id=>2})这将返回Mongoid::Criteria的实例我可以用这个标准做什么?如果我只想返回文档数组以供进一步评估怎么办? 最佳答案 在Mongoid中,条件代表查询,而不是元素。您可以将条件视为过滤器、范围、查询对象。一旦你有了一个条件(范围),你就可以获取元素,对数据库执行一个实际的查询,使用一个应该迭代元素或返回一个元素的方法,例如:.first、.last、.to_a、.each、.map等这样效率更高,允许您从其他简单的“

ruby-on-rails - Mongoid "criteria"是如何工作的?

我正在尝试做一些直接的事情,例如:User.all(:criteria=>{:project_id=>2})这将返回Mongoid::Criteria的实例我可以用这个标准做什么?如果我只想返回文档数组以供进一步评估怎么办? 最佳答案 在Mongoid中,条件代表查询,而不是元素。您可以将条件视为过滤器、范围、查询对象。一旦你有了一个条件(范围),你就可以获取元素,对数据库执行一个实际的查询,使用一个应该迭代元素或返回一个元素的方法,例如:.first、.last、.to_a、.each、.map等这样效率更高,允许您从其他简单的“

mongodb - Mongoid 没有服务器可用匹配首选项

当我尝试对数据库执行查询时,我有一堆正在运行的sidekiq作业失败并出现以下错误:Noserverisavailablematchingpreference:#这似乎是随机发生的,而不是一直发生。我的mongoid.yml结构如下:hosts:-XX.XXX.XXX.X:27000-XX.XXX.XXX.XXX:27000database:acbde__productionoptions:connect_timeout:20read:mode::secondarymax_pool_size:800replica_set:acbdeReplset以前有人遇到过这个问题吗?

mongodb - Mongoid 没有服务器可用匹配首选项

当我尝试对数据库执行查询时,我有一堆正在运行的sidekiq作业失败并出现以下错误:Noserverisavailablematchingpreference:#这似乎是随机发生的,而不是一直发生。我的mongoid.yml结构如下:hosts:-XX.XXX.XXX.X:27000-XX.XXX.XXX.XXX:27000database:acbde__productionoptions:connect_timeout:20read:mode::secondarymax_pool_size:800replica_set:acbdeReplset以前有人遇到过这个问题吗?

ruby-on-rails - Mongoid 中的日期查询

这已经被问了很多,但我仍然面临一些问题。我有收到的日期并存储为日期。我需要查询大于和小于,所以我将其更改为时间,再次尝试,但我得到了奇怪的结果。我正在做这个Class.where(:event_date.gt=>Time.parse(Date.today))我正在获取旧唱片,1940年代、1960年代等。我尝试通过在末尾添加.utc来转换时间,仅与Date.today进行比较,但到目前为止还没有解决问题。这是Mongoid生成的选择器selector:{:date_utc=>{"$gte"=>SatSep1021:00:00UTC2011}},我收到格式为“2011-09-11”的日期

ruby-on-rails - Mongoid 中的日期查询

这已经被问了很多,但我仍然面临一些问题。我有收到的日期并存储为日期。我需要查询大于和小于,所以我将其更改为时间,再次尝试,但我得到了奇怪的结果。我正在做这个Class.where(:event_date.gt=>Time.parse(Date.today))我正在获取旧唱片,1940年代、1960年代等。我尝试通过在末尾添加.utc来转换时间,仅与Date.today进行比较,但到目前为止还没有解决问题。这是Mongoid生成的选择器selector:{:date_utc=>{"$gte"=>SatSep1021:00:00UTC2011}},我收到格式为“2011-09-11”的日期

ruby-on-rails-3 - 如何从 Mongoid 直接访问 MongoDB API?

我想使用addToSetMongoDB的方法,但Mongoid目前还不支持。有没有办法从我的Rails模型中直接访问MongoDB驱动程序? 最佳答案 我问了这个问题onMongoidgroup这是最好的回应:AssumingyourmodelobjectisaMongoid::Document,simplycallthe"db"methodonittogetahandletotheMongo::DBobjectthatMongoidisusingunderthehood.http://rdoc.info/github/mongoi

ruby-on-rails-3 - 如何从 Mongoid 直接访问 MongoDB API?

我想使用addToSetMongoDB的方法,但Mongoid目前还不支持。有没有办法从我的Rails模型中直接访问MongoDB驱动程序? 最佳答案 我问了这个问题onMongoidgroup这是最好的回应:AssumingyourmodelobjectisaMongoid::Document,simplycallthe"db"methodonittogetahandletotheMongo::DBobjectthatMongoidisusingunderthehood.http://rdoc.info/github/mongoi

ruby - 如何联合两个不同的 Mongoid Criteria

我的模型中定义了以下范围:scope:upcoming,->{where(:start_time.gt=>Time.now).asc(:start_time)}scope:in_progress,->{now=Time.nowwhere(:start_time.lte=>now).where(:end_time.gte=>now).asc(:start_time)}我想创建另一个范围,它结合了这两个范围的结果,称为current。我尝试过这样的事情:scope:current,->{self.in_progress|self.upcoming}但这只是最终将它们都视为数组并将它们连接起