Tag: mongodb

如何从Mongoid中的嵌入文档中排除字段?

我有一个包含嵌入标签的Post文档。 有时我只显示post的标题及其标签。 在这些情况下,我在mongoid中使用以下查询: Post.only(:title).find(id) 然后我将查询结果作为json发送给客户端。 不幸的是,标签的bson id使得json比我需要的大得多。 如何从查询中排除“_id”字段? 这是我的模特: class Post include Mongoid::Document field :title, :type => String field :body, :type => String field :tags, :type => Array embeds_many :tags end class Tag include Mongoid::Document field :tag, :type => String field :type, :type => String embedded_in :post end

有没有办法在使用mongodb / mongoid排序时将所有nil值放在最后?

真的没什么可说的,而不是问题中的内容。 使用mongoid: People.asc(:age) 我先得到零值。 有没有办法总是最后返回nil,或告诉mongodb将nil视为非常高? 完全像在这里sql中的相同问题的答案

Mongoid不在查询中

我对mongoid有些麻烦: test “Test candidate” do User.create(:id => 1, :sex => User::Male, :country => 1, :city => 1) User.create(:id => 2, :sex => User::Female, :country => 1, :city => 1) User.create(:id => 3, :sex => User::Female, :country => 1, :city => 1) user = User.not_in(:id => [2]).second assert_not_equal(user.id, 2) end 测试失败。 我曾尝试使用where(:id => {‘$ nid’=> [2]}),但它具有相同的效果。 […]

Ruby组按键值散列

我有一个数组,由MongoDB执行的map / reduce方法输出,它看起来像这样: [{“minute”=>30.0, “hour”=>15.0, “date”=>5.0, “month”=>9.0, “year”=>2011.0, “type”=>0.0, “count”=>299.0}, {“minute”=>30.0, “hour”=>15.0, “date”=>5.0, “month”=>9.0, “year”=>2011.0, “type”=>10.0, “count”=>244.0}, {“minute”=>30.0, “hour”=>15.0, “date”=>5.0, “month”=>9.0, “year”=>2011.0, “type”=>1.0, “count”=>204.0}, {“minute”=>45.0, “hour”=>15.0, “date”=>5.0, “month”=>9.0, “year”=>2011.0, “type”=>0.0, “count”=>510.0}, {“minute”=>45.0, “hour”=>15.0, “date”=>5.0, “month”=>9.0, “year”=>2011.0, “type”=>10.0, “count”=>437.0}, {“minute”=>0.0, “hour”=>16.0, “date”=>5.0, “month”=>9.0, “year”=>2011.0, “type”=>0.0, “count”=>469.0}, {“minute”=>0.0, “hour”=>16.0, “date”=>5.0, “month”=>9.0, “year”=>2011.0, “type”=>10.0, “count”=>477.0}, {“minute”=>15.0, “hour”=>16.0, “date”=>5.0, […]

列出Mongoid模型中的动态属性

我已经阅读了文档,我找不到具体的方法来解决这个问题。 我已经为模型添加了一些动态属性,我希望能够遍历所有这些属性。 所以,举一个具体的例子: class Order include Mongoid::Document field :status, type: String, default: “pending” end 然后我做以下事情: Order.new(status: “processed”, internal_id: “1111”) 后来我想回来并且能够获得所有动态属性的列表/数组(在这种情况下,“internal_id”就是它)。 我还在挖,但我很想听听其他人是否已经解决了这个问题。

如何在没有O ^ 2问题的Ruby中找到一串二进制二进制文件的最接近的对(汉明距离)?

我有一个包含大约100万个文档的MongoDB。 这些文档都有一个字符串,表示一个1位和0位的256位bin,如: 0110101010101010110101010101 理想情况下,我想查询近二进制匹配。 这意味着,如果两个文件具有以下数字。 是的,这是汉明距离。 Mongo目前不支持此function。 所以,我被迫在应用程序层中完成它。 因此,鉴于此,我试图找到一种方法来避免在文档之间进行单独的汉明距离比较。 这使得时间基本上不可能完成。 我有很多内存。 并且,在ruby中,似乎有一个伟大的gem(算法)可以创建许多树,我似乎没有任何工作(还)可以减少我需要做的查询数量。 理想情况下,我想制作100万个查询,找到接近重复的字符串,并能够更新它们以反映这一点。 任何人的想法将不胜感激。

Mongoid随机文件

让我们说我有一个用户集合。 有没有办法使用mongoid在集合中找到n个随机用户,它不会返回同一个用户两次? 现在让我们假设用户集合如下所示: class User include Mongoid::Document field :name end 简单吧? 谢谢

MongoDB和Mongoid正在制作中

我正在部署我的第一个小应用程序MongoDB和Mongoid作为驱动程序。 在生产中使用MongoDB的正确安全方法是什么? 我的意思是在开发中我刚刚开始使用mongod ,就是这样 – 不需要用户名或密码,看起来不安全。 Mongoid也设置默认配置 production: host: port: username: password: database: 我应该如何在生产服务器上配置此选项和整个MongoDB?

如何获取Mongoid文档的所有字段名称?

我正在构建后端系统,如Iain Hecker的教程中所述: http ://iain.nl/backends-in-rails-3-1,我尝试使用Mongoid将其改编为MongoDB。 所以,当我需要写入backend / resourse_helper.rb时 module Backend::ResourceHelper def attributes resource_class.attribute_names – %w(id created_at updated_at) end end 我收到以下错误: undefined method `attribute_names’ for Backend::User:Class (我将后端植根于“后端/用户#index”)。 后端::用户inheritance自用户: class User include Mongoid::Document devise_for :users field :name field :address end 我只需要该用户的字段列表:类,我猜(即[“电子邮件”,“名称”,“地址”,……]),但我试图找到方法。

我如何用ruby驱动程序知道我的文档在MongoDB中的大小

MongoDB中一个文档的限制是4Mo。 我有一些文件真的很重,有很多数据。 我如何用ruby驱动程序知道我的文档在MongoDB中的大小?