类:Mongoid::Criteria

继承:
对象
  • 对象
显示全部
包括:
Enumerable、Inspectable、 Mongoid::Clients::Options Mongoid::Clients::Sessions Contextual Findable Includable Marshalable Modifier Options Queryable Scopable
定义于:
lib/mongoid/criteria.rb ,
lib/mongoid/criteria/options.rb,
lib/mongoid/criteria/findable.rb,
lib/mongoid/criteria/scopable.rb,
lib/mongoid/criteria/queryable.rb,
lib/mongoid/criteria/includable.rb,
lib/mongoid/criteria/modifier.rb,
lib/mongoid/criteria/permission.rb,
lib/mongoid/criteria/translator.rb,
lib/mongoid/criteria/marshalable.rb,
lib/mongoid/criteria/queryable/key.rb,
lib/mongoid/criteria/queryable/smash.rb,
lib/mongoid/criteria/queryable/options.rb,
lib/mongoid/criteria/queryable/Optional.rb,
lib/mongoid/criteria/queryable/ 管道.rb,
lib/mongoid/criteria/queryable/selector.rb,
lib/mongoid/criteria/queryable/storable.rb,
lib/mongoid/criteria/queryable/macroable.rb,
lib/mongoid/criteria/queryable/mergeable.rb,
lib/mongoid/criteria/queryable/aggregable.rb,
lib/mongoid/criteria/queryable/expandable.rb,
lib/mongoid/criteria/queryable/selectable.rb,
lib/mongoid/criteria/queryable/extensions/ 设立.rb,
lib/mongoid/criteria/queryable/extensions/date.rb,
lib/mongoid/criteria/queryable/extensions/hash.rb,
lib/mongoid/criteria/queryable/extensions/time.rb,
lib/mongoid/criteria/queryable/extensions/ 大量.rb,
lib/mongoid/criteria/queryable/extensions/ 范围.rb,
lib/mongoid/criteria/queryable/extensions/ 对象.rb,
lib/mongoid/criteria/queryable/extensions/regexp.rb,
lib/mongoid/criteria/queryable/extensions/string.rb,
lib/mongoid/criteria/queryable/extensions/symbol.rb,
lib/mongoid/criteria/queryable/extensions/boolean.rb,
lib/mongoid/criteria/queryable/extensions/numeric.rb,
lib/mongoid/criteria/queryable/extensions/date_time.rb,
lib/mongoid/criteria/queryable/extensions/nil_class.rb,
lib/mongoid/criteria/queryable/extensions/big_decimal.rb,
lib/mongoid/criteria/queryable/extensions/time_with_zone.rb

Overview

Criteria 类是 Mongoid 中从数据库检索对象所需的核心对象。它是一种 DSL,本质上是设置选择器和选项参数,而这些参数会传递给 Ruby 驱动程序中的 Mongo::集合。Criteria 上的每个方法都会返回 self,它们可以链接起来,以创建要针对数据库执行的可读条件。

在命名空间下定义

模块: 可 查找 、可 包含、可编组 、 可修改 选项 、 权限 、可 查询、作用域 转换器

常量摘要折叠

ALLOWED_FROM_HASH_METHODS =

支持 from_hash 方法以防止任意方法执行。仅允许查询构建方法,不允许执行或修改方法。

%i[
  所有 all_in all_of  any_in any_of asc ascending
  batch_size between
  排序规则 comment cursor_type
  desc descending
  elem_match eq 存在 附加功能
  geo_spatial GROUP gt gte
  提示
  in 包括
  limit lt lte
  max_distance max_scan max_time_ms 合并(merge) mod
  ne 接近 near_sphere nin no_timeout  none_of 也不 not not_in
  偏移量 only or 来自一个购物车应用的order文档, order_by
  项目
  原始  重新排序
  作用域 跳过 slice snapshot
  text_search 类型
  未限定作用域 Unwind
  WHERE with_size with_type 没有
].冻结
CHECK =

用于检查方法缺失的静态大量- 我们只需要实例化一次。

[]

实例属性摘要折叠

可修改的属性

#create_attrs , #create_attrs 创建文档时添加到文档的其他属性。

Queryable中包含的属性

#aliases , #aliases 别名。#serializers#serializers 序列化器。

Queryable::Optional中包含的属性

#options , #options查询选项。

Queryable::Aggregable 中包含的属性

#aggregating , #aggregating 标志我们是否正在聚合。 , # 管道 , # 管道聚合管道。

Queryable::Mergeable中包含的属性

#strategy , #strategy 当前策略的名称。

类方法摘要折叠

实例方法摘要折叠

Mongoid::Clients::Sessions 中包含的方法

包含

Mongoid::Clients::Options中包含的方法

# 集合 , #collection_name , #mongo_client , #persistence_context , #persistence_context? , #with

Scopeable 中包含的方法

#apply_default_scope#apply_scope#remove_scoping#scoped#scoped? 、# scoping_options#scoping_options= 、# unscoped 、# unscoped? , #with_default_scope

Modified中包含的方法

# 构建 , #create , #create!#create_with#find_or_create_by#find_or_create_by!#find_or_initialize_by#first_or_create#first_or_create! , #first_or_initialize

包含在封送处理中的方法

#marshal_dump#marshal_load

Includable包含的方法

#eager_load#includes#inclusions#inclusions=#use_lookup?

Findable 中包含的方法

#execute_or_rise#for_ids#multiple_from_db

Queryable中包含的方法

#to_mql

Queryable::Optional中包含的方法

#ascending , #batch_size , #collation , #comment , #cursor_type , #descending , forwardables , #hint , #limit , #max_scan , #max_time_ms , #no_timeout , #order_by , #reorder , #skip , #slice , # 快照

Queryable::Macroable 中包含的方法

#key

Selectable中包含的方法

#atomic_selector

Queryable::Aggregable 中包含的方法

#aggregating?#group#project#unwind

Queryable::Mergeable中包含的方法

#and_with_operator#intersect#override#reset_strategies! , #union

Queryable::Storable中包含的方法

#add_field_expression#add_logic_operator_expression#add_one_expression#add_operator_expression

上下文中包含的方法

#context, #load_async

构造函数详情

#initialize(klass) ⇒ Criteria

初始化新条件。

例子:

初始化新条件。

Criteria.new(Band)

参数:

  • klass ( class )

    模型类。



323
324
325
326
327
328
# File 'lib/mongoid/criteria.rb', 第323行

def 初始化(klass)
  @klass = klass
  @embedded = nil
  @none = nil
  klass ? (klass.aliased_fields, klass.字段, klass.关系, klass.aliased_associations) : ({}, {}, {}, {})
end

动态方法处理

此类通过method_missing方法处理动态方法

# method_missing对象(私有)

用于在条件所属的Document上的类方法的 for 中将Criteria作用域链接在一起。

例子:

缺少处理方法。

criteria.method_missing(:name)

参数:

  • 名称 (符号)

    方法名称。

  • *args ( Object... )

    参数。

返回:

  • ( Object )

    方法调用的结果。



619
620
621
622
623
624
625
626
627
628
629
# File 'lib/mongoid/criteria.rb', 第619行

ruby2_keywords def method_missing(名称, *args, )
  if klass.respond_to?(名称)
    klass.发送(:with_scope, self) do
      klass.发送(名称, *args, )
    end
  elsif CHECK.respond_to?(名称)
    条目.发送(名称, *args, )
  else
    
  end
end

实例属性详细信息

#_raw_resultsnil | Hash

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

一个内部助手,用于在给定条件对象上获取/设置“原始”标志。

返回:

  • ( nil | Hash )

    如果设立,则它是一个具有两个键的哈希值::raw 和 :typed,这两个键描述是否应返回原始结果,以及是否应对它们进行类型转换。



244
245
246
# File 'lib/mongoid/criteria.rb', 第244行

def _raw_results
  @_raw_results
end

#关联对象

返回属性关联的值。



100
101
102
# File 'lib/mongoid/criteria.rb', 第100行

def 关联
  @association
end

#documentsArray<Document>

从嵌入式条件中获取文档。

例子:

获取文档。

criteria.documents

返回:



183
184
185
# File 'lib/mongoid/criteria.rb', 第183行

def 文档
  @documents ||= []
end

# embedded ">对象

返回嵌入属性的值。



100
101
102
# File 'lib/mongoid/criteria.rb', 第100行

def 嵌入式
  @embedded
end

#klassObject

返回属性 klass 的值。



100
101
102
# File 'lib/mongoid/criteria.rb', 第100行

def klass
  @klass
end

#parent_document对象

返回属性“parent_document”的值。



100
101
102
# File 'lib/mongoid/criteria.rb', 第100行

def parent_document
  @parent_document
end

类方法详细信息

from_hash (hash) ⇒条件

已弃用。

此方法已弃用,并将在未来发布中删除。

将给定的哈希值转换为条件。将遍历哈希中的每个键,这些键必须对应于条件对象上允许的方法。哈希可以包括指定条件的model类的“klass”键。

例子:

将哈希转换为条件。

Criteria.from_hash({ klass: Band, where: { name: "Depeche Mode" })

参数:

  • 哈希 (哈希)

    要转换的哈希值。

返回:

引发:

  • ( ArgumentError )

    如果 from_hash 中不允许使用某个方法。



81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/mongoid/criteria.rb', 第81行

def from_hash(哈希)
  条件 = 条件.new(哈希.删除(:klass) || 哈希.删除('klass'))
  哈希.each_pair do |方法, args|
    method_sym = 方法.to_sym
    除非 ALLOWED_FROM_HASH_METHODS.包括?(method_sym)
      提高 ArgumentError, " Method '#{method}' is not allowed in from_hash "
    end

    条件 = 条件.public_send(method_sym, args)
  end
  条件
end

实例方法详细信息

# == (other) ⇒ true | false

注意:

如果传递了可枚举值,则在调用时将强制加载数据库。

如果提供的EnumerableCriteria等于此Criteria或条件本身的结果,则返回 true。

参数:

  • 其他 ( Object )

    要比较的其他EnumerableCriteria

返回:

  • ( true | false )

    如果对象相等。



110
111
112
113
114
# File 'lib/mongoid/criteria.rb', 第110行

def ==(其他)
  return  if 其他.respond_to?(:selector)

  条目 == 其他
end

#_enumerable_findObject

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



24
# File 'lib/mongoid/criteria.rb', 第24行

别名 _enumerable_find find

# _findable_find对象

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



31
# File 'lib/mongoid/criteria.rb', 第31行

别名 _findable_find find

#as_json(options = nil) ⇒ String

需要正确获取 JSON 格式的条件

例子:

获取 JSON 格式的条件。

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

参数:

  • 选项 哈希 (默认为: nil

    要传递给序列化器的选项。

返回:

  • ( string )

    JSON string 。



173
174
175
# File 'lib/mongoid/criteria.rb', 第173行

def as_json(选项 = nil)
  条目.as_json(选项)
end

# embedded?true | false

条件是否为嵌入式文档?

例子:

条件是否为嵌入式文档?

criteria.embedded?

返回:

  • ( true | false )

    如果条件已嵌入。



202
203
204
# File 'lib/mongoid/criteria.rb', 第202行

def 嵌入式?
  !!@embedded
end

# empty_and_chainable?true | false

条件是空的但可链接的条件吗?

例子:

条件是否为“无”条件?

criteria.empty_and_chainable?

返回:

  • ( true | false )

    如果条件为“无”。



394
395
396
# File 'lib/mongoid/criteria.rb', 第394行

def empty_and_chainable?
  !!@none
end

#extract_id对象

从提供的条件中提取单个 ID。 可能位于 $and 查询或直接 _id 查询中。

例子:

提取 ID。

criteria.extract_id

返回:

  • ( Object )

    ID 。



272
273
274
# File 'lib/mongoid/criteria.rb', 第272行

def Extract_id
  选择器['_id'] || 选择器[:_id] || 选择器[' ID '] || 选择器[:id]
end

#extras(extras) ⇒ Criteria

Criteria添加一个条件,以指定要传递给 Ruby 驱动程序的其他选项,格式与驱动程序完全相同。

riteria.extras(:limit => 20 , :skip => 40 )

例子:

为条件添加额外的参数。

参数:

  • 附加功能 (哈希)

    额外的驱动程序选项。

返回:



285
286
287
288
289
# File 'lib/mongoid/criteria.rb', 第285行

def 附加功能(附加功能)
  Crit = 克隆
  Crit.选项.合并!(附加功能)
  Crit
end

# field_listArray<String>

获取包含字段的列表。

例子:

获取字段列表。

criteria.field_list

返回:

  • ( Array<String> )

    字段。



297
298
299
300
301
302
303
# File 'lib/mongoid/criteria.rb', 第297行

def field_list
  if 选项[:fields]
    选项[:fields].密钥.拒绝 { |key| key == klass.discriminator_key }
  else
    []
  end
end

#find(*args) {|Object| ... } ⇒ Document | Array<Document> | nil

注意:

每个参数都可以是单独的 ID、ID 数组或嵌套数组。 每个数组都将被展平。

在给定提供的_id值的情况下查找一个或多个文档,或者根据需要在加载文档后过滤应用程序进程空间中当前范围内的文档。

如果此方法未获得区块,则会委托给 Findable#find 并根据所提供的_id值查找一个或多个document。

如果为该方法提供了一个区块,则它会委托给 Enumerable#find 并返回当前 Criteria对象找到的第一个 document,而该区块会为其返回真值。

请注意,Mongoid 不会对 Enumerable 的“默认过程”参数进行特殊处理 - 委托给 FindableEnumerable 之间的决定仅取决于是否向 find 传递了区块。

例子:

通过_id查找文档,调用 Findable#find。

criteria.find("1234")

使用区块查找第一个匹配文档,调用 Enumerable#find。

criteria.find { |item| item.name == "Depeche Mode" }

使用默认Proc 使用区块查找第一个匹配文档,调用 Enumerable#find。

criteria.find(-> { "Default Band" }) { |item| item.name == "Milwaukee Mode" }

尝试查找_id是所提供过程的字符串化的文档,通常会失败。

enumerator = criteria.find(-> { "Default Band" })

参数:

  • *args ( [ Object | Array<Object> ]... )

    ID。

  • 区块(&B)

    要传递的可选区块。

产量:

  • ( Object )

    将每个可枚举元素生成到区块中。

返回:

引发:

  • Errors::DocumentNotFound 如果参数为 _id 值,且未找到所有文档,且raise_not_found_error Mongoid 配置选项为 true。

另请参阅:



157
158
159
160
161
162
163
# File 'lib/mongoid/criteria.rb', 第157行

def find(*args, )
  if block_given?
    _enumerable_find(*args, )
  else
    _findable_find(*args)
  end
end

# for_js ( JavaScript , scope = {}) ⇒条件

已弃用。

按提供的 JavaScript 和范围查找 document。使用 $where,但与 Criteria#where 不同,因为它将向查询传递一个代码对象,而不是一个纯字符串。可安全抵御 Javascript 注入攻击。

例子:

通过JavaScript查找。

Band.for_js("this.name = param", param: "Tool")

参数:

  • Javascript ( string )

    要在 $where 中执行的 JavaScript。

  • 范围 哈希 (默认为: {}

    代码的范围。

返回:



553
554
555
556
557
558
559
560
561
# File 'lib/mongoid/criteria.rb', 第553行

def for_js(Javascript, 范围 = {})
  代码 = if 范围.空?
           # 从MongoDB 4.4开始,$where 不支持 CodeWithScope
           BSON::代码.new(Javascript)
         else
           BSON::CodeWithScope.new(Javascript, 范围)
         end
  js_query(代码)
end

#freezeCriteria

冻结条件时,我们需要先初始化上下文,否则在尝试迭代时设置上下文将引发运行时错误。

例子:

冻结条件。

criteria.freeze

返回:



313
314
315
# File 'lib/mongoid/criteria.rb', 第313行

def 冻结
  上下文  包含  
end

# merge (other) ⇒ Criteria

将另一个对象与此Criteria合并并返回一个新条件。 另一个对象可能是CriteriaHash 。 这用于将多个作用域组合在一起,其中可能需要链式作用域情况。

例子:

将条件与另一个条件合并。

criteria.merge(other_criteria)

将条件与哈希合并。 哈希必须包含一个类

key that specifies the model class for the criteria and the key/value
pairs correspond to method names/args.

criteria.merge({
  klass: Band,
  where: { name: "Depeche Mode" },
  order_by: { name: 1 }
})

参数:

  • 其他 ( Criteria | Hash )

    要合并的另一个条件。

返回:



351
352
353
354
355
# File 'lib/mongoid/criteria.rb', 第351行

def 合并(merge)(其他)
  Crit = 克隆
  Crit.合并!(其他)
  Crit
end

# merge! (其他)→标准

将其他条件合并到此条件中。

例子:

将另一个条件合并到此条件中。

criteria.merge(Person.where(name: "bob"))

参数:

  • 其他 ( Criteria | Hash )

    要合并的条件。

返回:



365
366
367
368
369
370
371
372
373
374
375
# File 'lib/mongoid/criteria.rb', 第365行

def 合并!(其他)
  其他 = self.class.from_hash(其他) if 其他.is_a?(哈希)
  选择器.合并!(其他.选择器)
  选项.合并!(其他.选项)
  self.文档 = 其他.文档.dup 除非 其他.文档.空?
  self.scoped_options = 其他.scoped_options
  self.包含 = (包含 + 其他.包含).uniq
  self._raw_results = _raw_results || 其他._raw_results
  @use_lookup ||= 其他.use_lookup?
  self
end

# none条件

返回始终包含零个结果且从不访问数据库的条件。

例子:

返回无条件。

criteria.none

返回:



384
385
386
# File 'lib/mongoid/criteria.rb', 第384行

def 
  @none = true  self
end

# only (*args) ⇒条件

已重写以在字段中包含 _type。

例子:

限制从数据库返回的字段。

Band.only(:name)

参数:

  • *args ( [Symbol | Array<Symbol>]... )

    字段名称。

返回:



406
407
408
409
410
411
412
413
# File 'lib/mongoid/criteria.rb', 第406行

def only(*args)
  args = args.展平
  return 克隆 if args.空?

  args.unshift(:_id) if (args  字段::IDS).空?
  args.推动(klass.discriminator_key.to_sym) if klass.会遗传吗?
  
end

# Raise_eager_error (is_eager_load, klass, relation) ⇒ 对象

引发:



115
116
117
118
119
120
121
# File 'lib/mongoid/criteria/includable.rb', line 115

def Raise_eager_error(is_eager_load, klass, 关系)
  if is_eager_load
    提高 ArgumentError, " 预先加载仅支持 #{ klass } 上关联名称的参数 "
  end

  提高 Errors::InvalidIncludes.new(klass, [ 关系 ])
end

#raw(raw_results = true, typed: nil) ⇒ 条件

生成当前条件对象的克隆,并将其“原始”设置设立给定值。设立为“raw”的条件将以原始哈希值形式返回所有结果。如果 typed 为 true,则哈希中的值将根据其对应的字段进行类型转换。

当未设立“raw”时(或 raw_results 为 false)时,该条件将以实例化 Document 实例的形式返回所有结果。

例子:

以原始哈希值形式返回查询结果:

Person.where(city: 'Boston').raw

参数:

  • raw_results ( true | false ) (默认为: true

    新条件是否应置于“原始”模式。

  • typed ( true | false ) (默认为: nil

    在返回原始结果之前是否应进行类型转换。如果raw_results 为 false,则默认为 true,否则为 false。

返回:

  • ( Criteria )

    克隆的条件对象。

引发:

  • ( ArgumentError )


224
225
226
227
228
229
230
231
232
233
234
# File 'lib/mongoid/criteria.rb', 第224行

def 原始(raw_results = true, 输入: nil)
  # 当raw_results 为 false 时,typed 的默认值为 true;当
  #raw_results 为 true。
  typed = !raw_results if typed.nil?

  提高 ArgumentError, ' 实例化结果必须进行类型转换 ' if !typed && !raw_results

  克隆.点击 do |条件|
    条件._raw_results = { 原始: raw_results, 输入: typed }
  end
end

#raw_results?true | false

回答以下问题的谓词:此条件对象当前是否处于原始模式?(有关原始模式的说明,请参阅 #raw。)

返回:

  • ( true | false )

    条件是否处于原始模式。



250
251
252
# File 'lib/mongoid/criteria.rb', 第250行

def raw_results?
  _raw_results && _raw_results[:raw]
end

# read (value = nil) ⇒ Criteria

设置条件的读取偏好(read preference)。

例子:

设置读取偏好(read preference)。

criteria.read(mode: :primary_preferred)

参数:

  • 哈希 (默认为: nil

    模式偏好。

返回:



423
424
425
426
427
# File 'lib/mongoid/criteria.rb', 第423行

def ( = nil)
  克隆.点击 do |条件|
    条件.选项.合并!(读取: )
  end
end

# respond_to? (name, include_private = false) ⇒ true | false

如果条件响应给定方法,则返回 true。

例子:

标准是否响应方法?

criteria.respond_to?(:each)

参数:

  • 名称 (符号)

    Document上的类方法的名称。

  • include_private ( true | false ) (默认为: false

    是否包含私有成员。

返回:

  • ( true | false )

    如果条件响应该方法。



451
452
453
# File 'lib/mongoid/criteria.rb', 第451行

def respond_to?(名称, include_private = false)
   || klass.respond_to?(名称) || CHECK.respond_to?(名称, include_private)
end

#to_criteriaCriteria

已弃用。

为想要合并到条件中的对象提供了便利。

例子:

转换为条件。

criteria.to_criteria

返回:



464
465
466
# File 'lib/mongoid/criteria.rb', 第464行

def to_criteria
  self
end

# to_procProc

将条件转换为过程。

例子:

将条件转换为过程。

criteria.to_proc

返回:

  • ( Proc )

    封装的条件。



475
476
477
# File 'lib/mongoid/criteria.rb', 第475行

def to_proc
  -> { self }
end

# type (types) ⇒条件

Criteria添加一个条件,用于指定必须匹配的类型或类型数组。

例子:

仅匹配特定模型。

criteria.type('Browser')
criteria.type(['Firefox', 'Browser'])

参数:

  • 类型 ( Array<String> )

    要匹配的类型。

返回:



489
490
491
# File 'lib/mongoid/criteria.rb', 第489行

def 类型(类型)
  any_in(discriminator_key.to_sym => 阵列(类型))
end

#typecast_results?true | false

回答以下问题的谓词:此条件对象返回的结果是否应该进行类型转换?(有关说明,请参阅 #raw。)除非#raw_results,否则回答毫无意义?为 true,因为如果返回实例化文档对象,则它们将始终进行类型转换。

返回:

  • ( true | false )

    标准是否应返回类型转换结果。



261
262
263
# File 'lib/mongoid/criteria.rb', 第261行

def typecast_results?
  _raw_results && _raw_results[:typed]
end

# where (*args) ⇒条件

这是大多数 MongoDB 查询的一般入口点。 这会创建一个标准字段:值选择和使用哈希方法扩展的选择,或者如果提供了string ,则创建 $where 选择。

例子:

添加标准选择。

criteria.where(name: "syd")

添加 JavaScript 选择。

criteria.where("this.name == 'syd'")

参数:

  • *args ( [ Hash | string ]... )

    标准选择或JavaScript string 。

返回:

  • ( Criteria )

    克隆的可选内容。

引发:

  • ( UnsupportedJavascript )

    如果提供了一个string ,则嵌入了该条件。



510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
# File 'lib/mongoid/criteria.rb', 第510行

def WHERE(*args)
  # 从历史上看,该方法只需要一个参数。
  # 从 https://jira.mongodb.org/browse/MONGOID-{0 4804开始 它还接受
  # zero arguments.
  # Super 调用的根本的where实施支持
  # 任意数量的参数,但目前不允许多个
  # 通过此方法传递的参数。 可以在以下内容中重新考虑此 API:
  #future.
  提高 ArgumentError, " Criteria#where 需要零个或一个参数(给定#{ args . length }  " if args.长度 > 1

  if args.长度 == 1
    表达式(expression) = args.first
    提高 Errors::UnsupportedJavascript.new(klass, 表达式(expression)) if 表达式(expression).is_a?(::字符串) && 嵌入式?
  end
  
end

# without (*args) ⇒条件

已覆盖以从字段中排除_id 。

例子:

排除从数据库返回的字段。

Band.without(:name)

参数:

  • *args (符号... )

    字段名称。

返回:



437
438
439
440
# File 'lib/mongoid/criteria.rb', 第437行

def 没有(*args)
  args -= id_fields
  
end

# without_options ⇒ 条件

获取此条件的不带选项的版本。

例子:

获取不带选项的条件。

criteria.without_options

返回:



533
534
535
536
537
# File 'lib/mongoid/criteria.rb', 第533行

def without_options
  Crit = 克隆
  Crit.选项.清除
  Crit
end