模块:Mongo::Collection::QueryableEncryption Private

包含在:
Mongo::Collection
定义于:
build/Ruby-driver-v 2.19 /lib/mongo/collection/queryable_encryption.rb

Overview

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

此模块包含为可查询Queryable Encryption创建和删除辅助集合的方法。

由于:

  • 2.0.0

常量摘要折叠

QE 2 _MIN_WIRE_VERSION =

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

支持QE 2的最低传输版本

由于:

  • 2.0.0

21

实例方法摘要折叠

实例方法详细信息

#也许_create_qe_collections (encrypted_fields, 客户端, session) ⇒结果

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

如有必要,为可查询Queryable Encryption创建辅助集合和索引。

参数:

  • encryption_fields ( Hash | nil )

    提供给“创建”集合助手的加密字段哈希。

  • 客户端 (客户端)

    mongo客户端,用于创建辅助集合。

  • 会话 (会话)

    用于创建辅助集合的会话。

返回:

  • (结果)

    Provided区块的结果。

由于:

  • 2.0.0



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 集合/queryable_encryption.rb', 第35行

def 也许_create_qe_collections(encryption_fields, 客户端, 会话)
  encryption_fields = encryption_fields_from(encryption_fields)
  return 产量 if encryption_fields.空?

  server = next_primary(nil, 会话)
  上下文 = 操作::上下文.new(客户端: 客户端, 会话: 会话)
  server.with_connection do |连接|
    check_wire_version!(连接)
    emm_collections(encryption_fields). do |coll|
      create_operation_for(coll)
        .execute_with_connection(连接, 上下文: 上下文)
    end
  end

  产量(encryption_fields).点击 do |结果|
    索引.create_one(__safeContent__: 1) if 结果
  end
end

#也许_drop_emm_collections (encrypted_fields, client, session) ⇒结果

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

如有必要,删除可查询Queryable Encryption的辅助集合和索引。

参数:

  • encryption_fields ( Hash | nil )

    提供给“创建”集合助手的加密字段哈希。

  • 客户端 (客户端)

    mongo客户端,用于删除辅助集合。

  • 会话 (会话)

    用于删除辅助集合的会话。

返回:

  • (结果)

    Provided区块的结果。

由于:

  • 2.0.0



62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File ' 构建/ruby-driver-v2.19/lib/ mongo / 集合/queryable_encryption.rb', 第62行

def 也许_drop_emm_collections(encryption_fields, 客户端, 会话)
  encryption_fields = if encryption_fields
                       encryption_fields
                     elsif encryption_fields_map
                       encrypted_fields_for_drop_from_map
                     else
                       {}
                     end

  return 产量 if encryption_fields.空?

  emm_collections(encryption_fields). do |coll|
    上下文 = 操作::上下文.new(客户端: 客户端, 会话: 会话)
    操作 = 操作::删除.new(
      选择器: { drop: coll },
      db_name: database.名称,
      会话: 会话
    )
    do_drop(操作, 会话, 上下文)
  end

  产量
end