Mongodb 文档如何声明它';当类上的计数返回0时,是否保留?

Mongodb 文档如何声明它';当类上的计数返回0时,是否保留?,mongodb,mongoid,Mongodb,Mongoid,文档如何声明foo.persistend?==当foo.class.count==0时为true? 更重要的是,如何使文档真正持久化 更新:从控制器调用Mongo::Foo.create()会增加计数。这是意料之中的。在单独的模块/类中调用create,或new和save,不会增加计数 更新:我已尝试将新建/保存调用更改为创建 [42] pry(#<FoosController>)> foo.class => Mongo::Foo [43] pry(#<FoosCo

文档如何声明
foo.persistend?==当
foo.class.count==0时为true

更重要的是,如何使文档真正持久化

更新:从控制器调用
Mongo::Foo.create()
会增加计数。这是意料之中的。在单独的模块/类中调用
create
,或
new
save
,不会增加计数

更新:我已尝试将
新建
/
保存
调用更改为
创建

[42] pry(#<FoosController>)> foo.class
=> Mongo::Foo
[43] pry(#<FoosController>)> foo.persisted?
=> true
[44] pry(#<FoosController>)> Mongo::Foo.count
=> 0
[47] pry(#<FoosController>)> foo.id
=> "5081a1a786ddc8e035000021"
[48] pry(#<FoosController>)> foo
=> #<Mongo::Foo _id: 5081a1a786ddc8e035000021, _type: nil, foo_daddy_id: nil, old_foo_daddy_id: 219, member_id: "F008AR", unix_time: nil, date_time: 2012-10-19 13:50:54 UTC, submitted: nil, json: nil>
更新:我还尝试了
@foo_类。使用(集合:“mongo_-foos”)。创建

[42] pry(#<FoosController>)> foo.class
=> Mongo::Foo
[43] pry(#<FoosController>)> foo.persisted?
=> true
[44] pry(#<FoosController>)> Mongo::Foo.count
=> 0
[47] pry(#<FoosController>)> foo.id
=> "5081a1a786ddc8e035000021"
[48] pry(#<FoosController>)> foo
=> #<Mongo::Foo _id: 5081a1a786ddc8e035000021, _type: nil, foo_daddy_id: nil, old_foo_daddy_id: 219, member_id: "F008AR", unix_time: nil, date_time: 2012-10-19 13:50:54 UTC, submitted: nil, json: nil>
正在使用
foo.new(参数)创建文档;foo.save

module FooThingy
  module Foo
    class Create < ::FooThingy::Base

      def initialize(options)
        # Sets instance variables used below
      end

      def execute!
        @foo = @foo_class.new({
          date_time: DateTime.strptime(@params["submitted_timestamp"], "%m-%d-%Y %H:%M:%S"),
          member_id: (@params[:member_id].present? ? @params[:member_id] : nil),
          old_foo_daddy_id: @params[:old_foo_daddy_id]
        })

        embed_foo_dumplings

        if @foo.save
          return FooThingy::Result.new(success: true, data: { foo: @foo })
        else
          return FooThingy::Result.new(success: false, data: { foo: @foo })
        end
      end

      private
      def embed_foo_dumplings
        # Embeds foo_dumplings
      end

    end
  end
end
模块足部铰链
模块Foo
类创建<::FooThingy::Base
def初始化(选项)
#设置下面使用的实例变量
结束
def执行!
@foo=@foo_class.new({
日期时间:DateTime.strtime(@params[“提交的时间戳”],%m-%d-%Y%H:%m:%S”),
成员id:(@params[:成员id]。当前???@params[:成员id]:无),
old_foo_daddy_id:@params[:old_foo_daddy_id]
})
包饺子
如果@foo.save
return FooThingy::Result.new(成功:true,数据:{foo:@foo})
其他的
return FooThingy::Result.new(成功:false,数据:{foo:@foo})
结束
结束
私有的
def_foo_饺子
#包富贵饺子
结束
结束
结束
结束
在这里,我调用该模块来创建文档:

class FoosController < ApplicationController
  def create
    foo_creator = FooThingy::Foo::Create.new(params: params, foo_class: Mongo::Foo)
    foo = foo_creator.execute!
    foo = foo.data[:foo]
    binding.pry
  end
end
class FoosController
我认为,这个问题没有表面上看起来那么有趣。我已经修改了我的
config/mongoid.yml
来指定一个新的数据库,一切都按照预期进行。问题可能是由于32位MongoDB安装的限制。

已尝试将
@foo\u类更改为
@foo\u类。新建
@foo\u类。创建
Mongo::Foo.count
仍然返回0注意:如果我在控制器中调用Mongo::Foo.create(),Mongo::Foo.count将递增。从FooThingy::Foo::Create保存记录将返回一个文档,但不会增加Mongo::Foo上的计数