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上的计数