模块:Mongoid::Criteria::ModABLE

包含在:
Mongoid::Criteria
定义于:
lib/mongoid/criteria/modified.rb

Overview

Mongoid::Criteria 的 Mixin 模块能力了构建或创建新文档的功能,其中属性初始化为条件的条件。

实例属性摘要折叠

实例方法摘要折叠

实例属性详细信息

# create_attrs对象(只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。



14
15
16
# File 'lib/mongoid/criteria/modifier.rb', line 14

def create_attrs
  @create_attrs
end

# create_attrs 创建文档时添加到文档的其他属性。 (在创建时添加到文档的附加属性。)⇒对象(只读)

此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。



14
# File 'lib/mongoid/criteria/modifier.rb', line 14

attr_reader :create_attrs

实例方法详细信息

# build (attrs = {}, &block) ⇒文档也称为: new

构建给定选择器的文档并将其返回。 复杂的条件,例如 $in 和 $or 操作将被忽略。

例子:

构建文档。

Person.where(:title => "Sir").build

使用被忽略的选择器进行构建。

Person.where(:age.gt => 5).build

返回:

  • (文档)

    非持久化文档。



26
27
28
# File 'lib/mongoid/criteria/modifier.rb', line 26

def 构建(attrs = {}, )
  create_document(:new, attrs, )
end

# create (attrs = {}, &block) ⇒文档

在给定选择器的数据库中创建一个文档并将其返回。 复杂的条件,例如 $in 和 $or 操作将被忽略。

例子:

创建文档。

Person.where(:title => "Sir").create

使用被忽略的选择器进行创建。

Person.where(:age.gt => 5).create

返回:

  • (文档)

    新创建的文档。



41
42
43
# File 'lib/mongoid/criteria/modifier.rb', line 41

def 创建(attrs = {}, )
  create_document(:create, attrs, )
end

#创建! (attrs = {}, &block) ⇒文档

在给定选择器的数据库中创建一个文档并将其返回。 复杂的条件,例如 $in 和 $or 操作将被忽略。 如果验证失败,则会引发错误。

例子:

创建文档。

Person.where(:title => "Sir").create

使用被忽略的选择器进行创建。

Person.where(:age.gt => 5).create

返回:

  • (文档)

    新创建的文档。

引发:



58
59
60
# File 'lib/mongoid/criteria/modifier.rb', line 58

def 创建!(attrs = {}, )
  create_document(:create!, attrs, )
end

# create_with (attrs = {}) ⇒ Mongoid::Criteria

定义用于创建新文档的属性。

请注意,如果在方法链中在此之后调用“find_or_create_by”,则查询中的属性将覆盖此方法中的属性。

例子:

定义创建新文档时要使用的属性。

Person.create_with(job: 'Engineer').find_or_create_by(employer: 'MongoDB')

返回:



71
72
73
74
75
76
# File 'lib/mongoid/criteria/modifier.rb', line 71

def create_with(attrs = {})
  点击 do
    @create_attrs ||= {}
    @create_attrs.update(attrs)
  end
end

# find_or_create_by (attrs = {}, &block) ⇒文档

在给定的条件下查找第一个Document ,或根据提供的条件创建新文档。

例子:

查找或创建文档。

Person.find_or_create_by(:attribute => "value")

参数:

  • attrs 哈希 (默认为: {}

    要检查的属性。

返回:

  • (文档)

    匹配的文档或新创建的文档。



87
88
89
# File 'lib/mongoid/criteria/modifier.rb', line 87

def find_or_create_by(attrs = {}, )
  find_or(:create, attrs, )
end

# find_or_create_by! (attrs = {}, &block) ⇒文档

在给定的条件下查找第一个Document ,或根据提供的条件创建新文档。 如果验证失败,则会引发异常。

例子:

查找或创建文档。

Person.find_or_create_by!(:attribute => "value")

参数:

  • attrs 哈希 (默认为: {}

    要检查的属性。

返回:

  • (文档)

    匹配的文档或新创建的文档。

引发:



103
104
105
# File 'lib/mongoid/criteria/modifier.rb', line 103

def find_or_create_by!(attrs = {}, )
  find_or(:create!, attrs, )
end

# find_or_initialize_by (attrs = {}, &block) ⇒文档

在给定的条件下查找第一个Document ,或使用提供的条件初始化新文档。

例子:

查找或初始化文档。

Person.find_or_initialize_by(:attribute => "value")

参数:

  • attrs 哈希 (默认为: {}

    要检查的属性。

返回:

  • (文档)

    匹配的或新初始化的文档。



116
117
118
# File 'lib/mongoid/criteria/modifier.rb', line 116

def find_or_initialize_by(attrs = {}, )
  find_or(:new, attrs, )
end

# first_or_create (attrs = nil, &block) ⇒文档

找到第一个Document ,或使用提供的条件和属性创建一个新文档。

例子:

首先或创建文档。

Person.where(name: "Jon").first_or_create(attribute: "value")

参数:

  • attrs 哈希 (默认为: nil

    要添加的其他属性。

返回:

  • (文档)

    匹配的文档或新创建的文档。



129
130
131
# File 'lib/mongoid/criteria/modifier.rb', line 129

def first_or_create(attrs = nil, )
  first_or(:create, attrs, )
end

# first_or_create! (attrs = nil, &block) ⇒文档

找到第一个Document ,或使用提供的条件和属性创建新文档,如果验证失败,则会引发错误。

例子:

首先或创建文档。

Person.where(name: "Jon").first_or_create!(attribute: "value")

参数:

  • attrs 哈希 (默认为: nil

    要添加的其他属性。

返回:

  • (文档)

    匹配的文档或新创建的文档。



143
144
145
# File 'lib/mongoid/criteria/modifier.rb', line 143

def first_or_create!(attrs = nil, )
  first_or(:create!, attrs, )
end

# first_or_initialize (attrs = nil, &block) ⇒文档

找到第一个Document ,或使用提供的条件和属性初始化新文档。

例子:

首先或初始化文档。

Person.where(name: "Jon").first_or_initialize(attribute: "value")

参数:

  • attrs 哈希 (默认为: nil

    要添加的其他属性。

返回:

  • (文档)

    匹配的或新初始化的文档。



156
157
158
# File 'lib/mongoid/criteria/modifier.rb', line 156

def first_or_initialize(attrs = nil, )
  first_or(:new, attrs, )
end