diff --git a/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-Date.json b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-Date.json
new file mode 100644
index 00000000000..e19fc1e1826
--- /dev/null
+++ b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-Date.json
@@ -0,0 +1,30 @@
+{
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DecimalNoPrecision.json b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DecimalNoPrecision.json
new file mode 100644
index 00000000000..c6d129d4ca1
--- /dev/null
+++ b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DecimalNoPrecision.json
@@ -0,0 +1,21 @@
+{
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalNoPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "sparsity": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ ]
+ }
+
\ No newline at end of file
diff --git a/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DecimalPrecision.json b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DecimalPrecision.json
new file mode 100644
index 00000000000..c23c3fa923c
--- /dev/null
+++ b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DecimalPrecision.json
@@ -0,0 +1,29 @@
+{
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "sparsity": {
+ "$numberInt": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DoubleNoPrecision.json b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DoubleNoPrecision.json
new file mode 100644
index 00000000000..4af6422714b
--- /dev/null
+++ b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DoubleNoPrecision.json
@@ -0,0 +1,21 @@
+{
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoubleNoPrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+
\ No newline at end of file
diff --git a/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DoublePrecision.json b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DoublePrecision.json
new file mode 100644
index 00000000000..c1f388219db
--- /dev/null
+++ b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-DoublePrecision.json
@@ -0,0 +1,30 @@
+{
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+
\ No newline at end of file
diff --git a/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-Int.json b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-Int.json
new file mode 100644
index 00000000000..217bf6743c8
--- /dev/null
+++ b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-Int.json
@@ -0,0 +1,27 @@
+{
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+
\ No newline at end of file
diff --git a/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-Long.json b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-Long.json
new file mode 100644
index 00000000000..0fb87edaeff
--- /dev/null
+++ b/specifications/client-side-encryption/prose-tests/etc/data/range-encryptedFields-Long.json
@@ -0,0 +1,27 @@
+{
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Aggregate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Aggregate.json
new file mode 100644
index 00000000000..a35321cd358
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Aggregate.json
@@ -0,0 +1,514 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Date. Aggregate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "aggregate": "default",
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "cursor": {},
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "aggregate"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Aggregate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Aggregate.yml
new file mode 100644
index 00000000000..4d17344dc53
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Aggregate.yml
@@ -0,0 +1,227 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDate', 'bsonType': 'date', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$date': {'$numberLong': '0'}}, 'max': {'$date': {'$numberLong': '200'}}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Date. Aggregate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDate: {$date: { $numberLong: "0" }} }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDate: {$date: { $numberLong: "1" }} }
+ - name: aggregate
+ arguments:
+ pipeline: [{ $match: { "encryptedDate": { $gt: {$date: {$numberLong: "0" }}} } }]
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDate": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDate": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ aggregate: *collection_name
+ pipeline: [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ]
+ cursor: {}
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: aggregate
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDate": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDate": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Correctness.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Correctness.json
new file mode 100644
index 00000000000..5832e854183
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Correctness.json
@@ -0,0 +1,1842 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "Find with $gt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$gte": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$lt": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$lte": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt below min",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$lt": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "must be greater than the range minimum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt above max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "must be less than the range maximum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "$lt": {
+ "$date": {
+ "$numberLong": "2"
+ }
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with full range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$gte": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "$lte": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$in": [
+ {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ ]
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Insert out of range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "-1"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "value must be greater than or equal to the minimum value"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Insert min and max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 200,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {},
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ },
+ {
+ "_id": 200,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$gte": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$lt": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$lte": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt below min",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$lt": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": {
+ "errorContains": "must be greater than the range minimum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt above max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": {
+ "errorContains": "must be less than the range maximum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "$lt": {
+ "$date": {
+ "$numberLong": "2"
+ }
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ ]
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with full range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$gte": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "$lte": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDate": {
+ "$in": [
+ {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Insert Double",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$numberDouble": "0"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "cannot encrypt element"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Find Double",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$gte": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "value type is a date"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Correctness.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Correctness.yml
new file mode 100644
index 00000000000..65382eec6b5
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Correctness.yml
@@ -0,0 +1,420 @@
+# Test correctness results.
+# Does not include command monitoring expectations or outcome assertions to make tests more readable.
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDate', 'bsonType': 'date', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$date': {'$numberLong': '0'}}, 'max': {'$date': {'$numberLong': '200'}}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "Find with $gt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDate: { $date: { $numberLong: "0" } } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDate: { $date: { $numberLong: "1" } } }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $gt: { $date: { $numberLong: "0" } } }}
+ result: [*doc1]
+
+ - description: "Find with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $gte: { $date: { $numberLong: "0" } } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $gt: { $date: { $numberLong: "1" } } }}
+ result: []
+
+ - description: "Find with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $lt: { $date: { $numberLong: "1" } } }}
+ result: [*doc0]
+
+ - description: "Find with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $lte: { $date: { $numberLong: "1" } } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $lt below min"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $lt: { $date: { $numberLong: "0" } } }}
+ result:
+ errorContains: must be greater than the range minimum
+
+ - description: "Find with $gt above max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $gt: { $date: { $numberLong: "200" } } }}
+ result:
+ errorContains: must be less than the range maximum
+
+ - description: "Find with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $gt: { $date: { $numberLong: "0" } }, $lt: { $date: {$numberLong: "2"}} }}
+ result: [*doc1]
+
+ - description: "Find with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $date: { $numberLong: "0" } } }
+ result: [*doc0]
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $date: { $numberLong: "1" } } }
+ result: [*doc1]
+
+ - description: "Find with full range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $gte: { $date: {$numberLong: "0"}}, $lte: { $date: {$numberLong: "200"} } } }
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $in: [ {$date: {$numberLong: "0"}} ] } }
+ result: [*doc0]
+
+ - description: "Insert out of range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: { _id: 0, encryptedDate: {$date: { $numberLong: "-1" }}}
+ result:
+ errorContains: value must be greater than or equal to the minimum value
+
+ - description: "Insert min and max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: *doc0
+ - name: insertOne
+ arguments:
+ document: &doc200 { _id: 200, encryptedDate: { $date: { $numberLong: "200" } }}
+ - name: find
+ arguments:
+ filter: {}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc200]
+
+ - description: "Aggregate with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDate: { $gte: { $date: { $numberLong: "0" } } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDate: { $gt: { $date: { $numberLong: "1" } } }} }
+ result: []
+
+ - description: "Aggregate with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDate: { $lt: { $date: { $numberLong: "1" } } }} }
+ result: [*doc0]
+
+ - description: "Aggregate with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDate: { $lte: { $date: { $numberLong: "1" } } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $lt below min"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDate: { $lt: { $date: { $numberLong: "0" } } }} }
+ result:
+ errorContains: must be greater than the range minimum
+
+ - description: "Aggregate with $gt above max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDate: { $gt: { $date: { $numberLong: "200" } } }} }
+ result:
+ errorContains: must be less than the range maximum
+
+ - description: "Aggregate with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDate: { $gt: { $date: { $numberLong: "0" } }, $lt: { $date: {$numberLong: "2"}} }} }
+ result: [*doc1]
+
+ - description: "Aggregate with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDate: { $date: { $numberLong: "0" } } } }
+ result: [*doc0]
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDate: { $date: { $numberLong: "1" } } } }
+ result: [*doc1]
+
+ - description: "Aggregate with full range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDate: { $gte: {$date: {$numberLong: "0"}}, $lte: {$date: {$numberLong: "200"}} } } }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDate: { $in: [ {$date: {$numberLong: "0"}} ] } } }
+ result: [*doc0]
+
+ - description: "Wrong type: Insert Double"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: { _id: 0, encryptedDate: { $numberDouble: "0" }} }
+ result:
+ # Expect an error from mongocryptd.
+ errorContains: "cannot encrypt element"
+
+ - description: "Wrong type: Find Double"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $gte: { $numberDouble: "0" } }}
+ result:
+ # expect an error mongocryptd.
+ errorContains: "value type is a date"
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Delete.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Delete.json
new file mode 100644
index 00000000000..b5856e76206
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Delete.json
@@ -0,0 +1,459 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Date. Delete.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "deleteOne",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ "result": {
+ "deletedCount": 1
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "delete": "default",
+ "deletes": [
+ {
+ "q": {
+ "encryptedDate": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDate": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "delete"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Delete.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Delete.yml
new file mode 100644
index 00000000000..6bb2535bb46
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Delete.yml
@@ -0,0 +1,185 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDate', 'bsonType': 'date', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$date': {'$numberLong': '0'}}, 'max': {'$date': {'$numberLong': '200'}}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Date. Delete."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDate: {$date: { $numberLong: "0" }} }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDate: {$date: { $numberLong: "1" }} }
+ - name: deleteOne
+ arguments:
+ filter: { "encryptedDate": { $gt: {$date: {$numberLong: "0" }}} }
+ result:
+ deletedCount: 1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDate": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDate": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ delete: *collection_name
+ deletes: [
+ {
+ "q": {
+ "encryptedDate": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ]
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDate": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: delete
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDate": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-FindOneAndUpdate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-FindOneAndUpdate.json
new file mode 100644
index 00000000000..a59258a466e
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-FindOneAndUpdate.json
@@ -0,0 +1,538 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Date. FindOneAndUpdate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "findOneAndUpdate",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "2"
+ }
+ }
+ }
+ },
+ "returnDocument": "Before"
+ },
+ "result": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "findAndModify": "default",
+ "query": {
+ "encryptedDate": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDate": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "findAndModify"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-FindOneAndUpdate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-FindOneAndUpdate.yml
new file mode 100644
index 00000000000..d220bf8ddf7
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-FindOneAndUpdate.yml
@@ -0,0 +1,243 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDate', 'bsonType': 'date', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$date': {'$numberLong': '0'}}, 'max': {'$date': {'$numberLong': '200'}}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Date. FindOneAndUpdate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDate: {$date: { $numberLong: "0" }} }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDate: {$date: { $numberLong: "1" }} }
+ - name: findOneAndUpdate
+ arguments:
+ filter: { encryptedDate: { $gt: {$date: {$numberLong: "0"}}} }
+ update: { "$set": { "encryptedDate": {$date: {$numberLong: "2"}}}}
+ returnDocument: Before
+ result: *doc1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDate": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDate": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ findAndModify: *collection_name
+ query: {
+ "encryptedDate": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ update: { "$set": {"encryptedDate": { $$type: "binData" }} }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDate": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: findAndModify
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDate": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDate": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-InsertFind.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-InsertFind.json
new file mode 100644
index 00000000000..4357fafeea5
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-InsertFind.json
@@ -0,0 +1,505 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Date. Insert and Find.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "default",
+ "filter": {
+ "encryptedDate": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "find"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-InsertFind.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-InsertFind.yml
new file mode 100644
index 00000000000..50a06cedafd
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-InsertFind.yml
@@ -0,0 +1,221 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDate', 'bsonType': 'date', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$date': {'$numberLong': '0'}}, 'max': {'$date': {'$numberLong': '200'}}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Date. Insert and Find."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDate: { $date: { $numberLong: "0" }} }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDate: { $date: { $numberLong: "1" }} }
+ - name: find
+ arguments:
+ filter: { encryptedDate: { $gt: { $date: { $numberLong: "0" }} } }
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDate": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDate": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ find: *collection_name
+ filter:
+ "encryptedDate": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: find
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDate": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDate": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Update.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Update.json
new file mode 100644
index 00000000000..fd170554f62
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Update.json
@@ -0,0 +1,540 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Date. Update.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ },
+ {
+ "name": "updateOne",
+ "arguments": {
+ "filter": {
+ "encryptedDate": {
+ "$gt": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDate": {
+ "$date": {
+ "$numberLong": "2"
+ }
+ }
+ }
+ }
+ },
+ "result": {
+ "matchedCount": 1,
+ "modifiedCount": 1,
+ "upsertedCount": 0
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command_name": "update",
+ "command": {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedDate": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedDate": {
+ "$$type": "binData"
+ }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDate",
+ "bsonType": "date",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$date": {
+ "$numberLong": "0"
+ }
+ },
+ "max": {
+ "$date": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDate": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDate": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDate": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Update.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Update.yml
new file mode 100644
index 00000000000..ba327caad7d
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Date-Update.yml
@@ -0,0 +1,260 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDate', 'bsonType': 'date', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$date': {'$numberLong': '0'}}, 'max': {'$date': {'$numberLong': '200'}}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Date. Update."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDate: { $date: { $numberLong: "0" } }}
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDate: { $date: { $numberLong: "1" } }}
+ - name: updateOne
+ arguments:
+ filter: { encryptedDate: { $gt: { $date: { $numberLong: "0" } } }}
+ update: { "$set": { "encryptedDate": { $date: { $numberLong: "2" } }}}
+ result:
+ matchedCount: 1
+ modifiedCount: 1
+ upsertedCount: 0
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDate": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDate": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command_name: update
+ command:
+ {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedDate": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedDate": { $$type: "binData" }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": *encrypted_fields
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDate": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDate": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDate": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Aggregate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Aggregate.json
new file mode 100644
index 00000000000..73d2cf4892d
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Aggregate.json
@@ -0,0 +1,1908 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Decimal. Aggregate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "aggregate": "default",
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "cursor": {},
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "aggregate"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimal": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0l86Ag5OszXpa78SlOUV3K9nff5iC1p0mRXtLg9M1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hn6yuxFHodeyu7ISlhYrbSf9pTiH4TDEvbYLWjTwFO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zdf4y2etKBuIpkEU1zMwoCkCsdisfXZCh8QPamm+drY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rOQ9oMdiK5xxGH+jPzOvwVqdGGnF3+HkJXxn81s6hp4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "61aKKsE3+BJHHWYvs3xSIBvlRmKswmaOo5rygQJguUg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KuDb/GIzqDM8wv7m7m8AECiWJbae5EKKtJRugZx7kR0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Q+t8t2TmNUiCIorVr9F3AlVnX+Mpt2ZYvN+s8UGict8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJRZIpKxUgHyL83kW8cvfjkxN3z6WoNnUg+SQw+LK+k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnUsYjip8SvW0+m9mR5WWTkpK+p6uwJ6yBUAlBnFKMk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PArHlz+yPRYDycAP/PgnI/AkP8Wgmfg++Vf4UG1Bf0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wnIh53Q3jeK8jEBe1n8kJLa89/H0BxO26ZU8SRIAs9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4F8U59gzBLGhq58PEWQk2nch+R0Va7eTUoxMneReUIA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ihKagIW3uT1dm22ROr/g5QaCpxZVj2+Fs/YSdM2Noco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EJtUOOwjkrPUi9mavYAi+Gom9Y2DuFll7aDwo4mq0M0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dIkr8dbaVRQFskAVT6B286BbcBBt1pZPEOcTZqk4ZcI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aYVAcZYkH/Tieoa1XOjE/zCy5AJcVTHjS0NG2QB7muA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sBidL6y8TenseetpioIAAtn0lK/7C8MoW4JXpVYi3z8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Dd2klU/t4R86c2WJcJDAd57k/N7OjvYSO5Vf8KH8sw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I3jZ92WEVmZmgaIkLbuWhBxl7EM6bEjiEttgBJunArA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aGHoQMlgJoGvArjfIbc3nnkoc8SWBxcrN7hSmjMRzos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bpiWPnF/KVBQr5F6MEwc5ZZayzIRvQOLDAm4ntwOi8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI7QVKbE6avWgDD9h4QKyFlnTxFCwd2iLySKakxNR/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XGsge0CnoaXgE3rcpKm8AEeku5QVfokS3kcI+JKV1lk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JQxlryW2Q5WOwfrjAnaZxDvC83Dg6sjRVP5zegf2WiM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YFuHKJOfoqp1iGVxoFjx7bLYgVdsN4GuUFxEgO9HJ5s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z6vUdiCR18ylKomf08uxcQHeRtmyav7/Ecvzz4av3k4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SPGo1Ib5AiP/tSllL7Z5PAypvnKdwJLzt8imfIMSEJQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m94Nh6PFFQFLIib9Cu5LAKavhXnagSHG6F5EF8lD96I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pfEkQI98mB+gm1+JbmVurPAODMFPJ4E8DnqfVyUWbSo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DNj3OVRLbr43s0vd+rgWghOL3FqeO/60npdojC8Ry/M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kAYIQrjHVu49W8FTxyxJeiLVRWWjC9fPcBn+Hx1F+Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aCSO7UVOpoQvu/iridarxkxV1SVxU1i9HVSYXUAeXk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Gh6hTP/yj1IKlXQ+Q69KTfMlGZjEcXoRLGbQHNFo/1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/gDgIFQ4tAlJk3GN48IS5Qa5IPmErwGk8CHxAbp6gs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PICyimwPjxpusyKxNssOOwUotAUbygpyEtORsVGXT8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4lu+cBHyAUvuxC6JUNyHLzHsCogGSWFFnUCkDwfQdgI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pSndkmoNUJwXjgkbkgOrT5f9nSvuoMEZOkwAN9ElRaE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tyW+D4i26QihNM5MuBM+wnt5AdWGSJaJ4X5ydc9iWTU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9Syjr8RoxUgPKr+O5rsCu07AvcebA4P8IVKyS1NVLWc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "67tPfDYnK2tmrioI51fOBG0ygajcV0pLo5+Zm/rEW7U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y0EiPRxYTuS1eVTIaPQUQBBxwkyxNckbePvKgChwd0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NWd+2veAaeXQgR3vCvzlI4R1WW67D5YsVLdoXfdb8qg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PY5RQqKQsL2GqBBSPNOEVpojNFRX/NijCghIpxD6CZk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lcvwTyEjFlssCJtdjRpdN6oY+C7bxZY+WA+QAqzj9zg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWE7XRNylvTwO/9Fv56dNqUaQWMmESNS/GNIwgBaEI0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ijwlrUeS8nRYqK1F8kiCYF0mNDolEZS+/lJO1Lg93C8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8KzV+qYGYuIjoNj8eEpnTuHrMYuhzphl80rS6wrODuU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wDyTLjSEFF895hSQsHvmoEQVS6KIkZOtq1c9dVogm9I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SGrtPuMYCjUrfKF0Pq/thdaQzmGBMUvlwN3ORIu9tHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KySHON3hIoUk4xWcwTqk6IL0kgjzjxgMBObVIkCGvk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hBIdS9j0XJPeT4ot73ngELkpUoSixvRBvdOL9z48jY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Tx6um0q9HjS5ZvlFhvukpI6ORnyrXMWVW1OoxvgqII0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zFKlyfX5H81+d4A4J3FKn4T5JfG+OWtR06ddyX4Mxas=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cGgCDuPV7MeMMYEDpgOupqyNP4BQ4H7rBnd2QygumgM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IPaUoy98v11EoglTpJ4kBlEawoZ8y7BPwzjLYBpkvHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Pfo4Am6tOWAyZNn8G9W5HWWGC3ZWmX0igI/RRB870Ro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fnTSjd7bC1Udoq6iM7UDnHAC/lsIXSHp/Gy332qw+/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fApBgVRrTDyEumkeWs5p3ag9KB48SbU4Si0dl7Ns9rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QxudfBItgoCnUj5NXVnSmWH3HK76YtKkMmzn4lyyUYY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sSOvwhKa29Wq94bZ5jGIiJQGbG1uBrKSBfOYBz/oZeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FdaMgwwJ0NKsqmPZLC5oE+/0D74Dfpvig3LaI5yW5Fs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sRWBy12IERN43BSZIrnBfC9+zFBUdvjTlkqIH81NGt4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/4tIRpxKhoOwnXAiFn1Z7Xmric4USOIfKvTYQXk3QTc=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimal": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RGTjNVEsNJb+DG7DpPOam8rQWD5HZAMpRyiTQaw7tk8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I93Md7QNPGmEEGYU1+VVCqBPBEvXdqHPtTJtMOn06Yk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "GecBFQ1PemlECWZWCl7f74vmsL6eB6mzQ9n6tK6FYfs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QpjhZl+O1ORifgtCZuWAdcP6OKL7IZ2cA46v8FJcV28=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RlQWwhU+uVv0a+9IB5cUkEfvHBvOw3B1Sx6WfPWMqes=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubb81XTC7U+4tcNzf1oYvOY6gR5hC2Izqx54f4GuJ0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6M4Q5NMQ9TqNnjzGOxIkiUIY8TEL0I3XD1QnhefQUqU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BtInzk9t2FFMCEY6AQ7zN8jwrrZEs2irSv6q0Q4NaIw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vxXfETu9cuBIpRBo3jUUU04mJIH/aAhLX8K6VI5Xv0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXPCdS+q23zi1bkPnaVG2j0PsVtxdeSLJ//h6J1x8RU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KY3KkfBAsN2l80wbpj41G0gwBR5KmmFnZcagg7D3ENk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI8NFAxXCX4VOnY5X73K6KI/Yspd3aR94KV39MhJlAw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nFxH0UC3mATKA6Vboz+QX/hAjj19kF/SH6H5Cne7qC0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q8hYqIYaIi7nOdG/7qQZYnz8Bsacfi66M1nVku4SH08=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4saA92R4arp4anvD9xFtze+sNcQqTEhPHyl1h70A8NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DbIziOBRRyeQS6RtBR09E37LV+CTKrEjGoRMLSpG6eE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Fv80Plp/7w2gnVqrwawLd6qhJ10G4NCDm3re67cNq4Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "T/T2oiQCBBES4YN7EodzPRdabZSFlYIClHBym+bQUZE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZQgHD3l46Ujqtbnj1VbbeM29C9wJzOhz+yZ/7XdSrxk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ltlFKzWvyZvHxDFOYDd/XXJ6kUiJj0ln2HTCEz2o4Z4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "flW8A7bltC1u8bzx0WJtxosGJdOVsJFfbx33jxnpFGg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SXO+92QbMKwUSG2t27ciunV1c3VvFkUuDmSczpRe008=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+KioGs1GM+xRBzFE67ePTWj04KMSE5/Y6qUF7nJ5kvU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L3xNVbh6YH+RzqABN+5Jgb7T234Efpn766DmUvxIxgg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hPF+60mBYPjh21dEmPlBhKgyc9S2qLtTkypYvnqP2Fc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EletRsETy2HcjaPIm2c8CkT7ch/P3pJJDC8hasepcSU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "r5bMXUaNKqLPxZ+TG9HYTG4aSDgcpim27rN8rQFkM0w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Q7Erdr8+/S0wUEDDIqlS5XjBVWvhZY65K0uUDb6+Ns=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xEcnhXy35hbXNVBPOOt3TUHbxvKfQ48KjA9b6/rbMqQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "T8bEpiQNgsEudXvyKE9SZlSvbpV/LUaslsdqgSFltyo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hIoiaF2YjnxDbODfhFEB+JGZ5nf8suD3Shck5bwQ3N0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qnA6qzejeRJ0rsZaZ0zOvKAaXyxt5lpscKQNYFZNl4k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "anAKCL2DN/le2VaP0n2ucYSEH/DaaEH/8Sa4OqTZsRA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JCZlBJaFm618oWYSnT9Jr1MtwFVw4BZjOzO+5yWgR90=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yxyk4n9762WzcDVGnTn4jCqUnSMIVCrLDIjCX1QVj34=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fDI6fdKvDJwim5/CQwWZEzcrXE3LHgy7FTtffcC7tXE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Vex+gcz5T+WkzsVZQrkqUR2ryyZbnaOGuWpYvjN0zCw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8TLEXz+Gbbp6llHpZXVjLsdlYY9f6hrKpHVpyfDe0RY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7fTyt5BrunypS65TfOzFW2E2qdIuT4SLeDeGlbQoJCs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8fKGrkqN0/KuSjyXgDBmRauDKrSa//JBKRWHEB9xBf4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s4codmG7uN4ss6P357jL21lazEe90M9GOK5WrOknSV0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RkSpua8XF+NUdxVDU90EbLUTTyZFX3tt3atBTroFaRk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LnTCuCDyAHK5B9KXzjtwGmWB+qergQk2OCjnIx9MI2A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cBFh0virAX4pVXf/udIGI2951i0+0aZAdJcBVGtYnT4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "G54X6myQXWZ5fw/G31en3QbdgfXzL9+hFTtJpnWMqDI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EdsiiuezcsFJFnYIyGjCOhnqMj1BOwTB5EFxN+ERUkg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dVH9MXLtk0WTwGQ3xmrhOqfropMUkDW3o6paNPGl3NU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sB3HqXKWY3pKbuEH8BTbfNIGfbY+7/ZbOc3XC+JRNNI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WHyDk62Xhqbo4/iie2aLIM4x2uuAjv6102dJSHI58oM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pNUFuHpeNRDUZ/NrtII2c6sNc9eGR1lIUlIyXKERA+0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UPa+pdCqnN0bfAptdzldQOSd01gidrDKy8KhWrpSKAI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "l+7dOAlo+HUffMqFYXL6pgUFeTbwOM9CjKQLxEoLtc4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SRnDXV/rN6C8xwMutv9E1luv3DOUio3VkgPr8Cpm7Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QcH6gl+gX7xZ7OWhUNQMbndJy0Piz49pDo6RsnLkVSA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "t+uL4DnfsI/Zll/KXWW1cOKX3Hu8WIkm3pt9efCVSAQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "myutHDctku/+Uug/nD8gRbYvmx/IovtoAAC2/fz2oHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6C+cjD0e0nSCP6cPqQYbNG7SlOd6Mfvi8hyfm7Ng+D8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zg01JSoOj9oBKT0S1ldJucXzY5AKgreS+h2xJreWTOs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7qQ80/FjodHl1m1py/Oii0/9C/xWbLdhaRXQ+kkCP10=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YwWMNH07vL6c5Nhg+MRnVByhzUunu8y0VLM9z/XvR5U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dle8bU98+fudAbc14SToZFkwvV3tcYVsjDug0NWljpc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "J+eKL1vPJmlzltvhI6Li5Fz/TJmi3Ng+ehRTcs46API=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB3XzfFygLwC3WHkj0up+VbEd25KKoce1vOpG/5bwK4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vnVnmOnL+z2pqwE+A6cVKS0Iwy4F4/2IiElJca9bUQM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+lG5r/Fpqry3BtFuvY67+RntmHAMDoLVOSGc6ZoXPb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L5MXQertqc6uj7ADe8aWKbd1sYHPCE7P1VYVg9Zc3VI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "imKONuZgopt0bhM3GMX2WVPwQYMTobuUUEdhcLfHs4c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eOkU1J1uVbiVFWBerbXsSIVcF2nqiicTkFy4x7kFHB8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gI0uDhXeoH/UatDQKEf4qo8FHzWZDhb/wuWTqbq/ID4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cOkd5Aa3btYhtojE/smsF/PJnULqQ4NNqTkU6KXTFmo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AWNJMs1MTe294oFipp8Y6P0CjpkZ4qCZoClQF3XcHq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6gJtlzXOFhGYrVbTuRMmvMlDTwXdNtR9aGBlHZPwIMw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LEmwVGA/xsEG7UrcOoYLFu6KCXgijzFznenknuDacm8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mIRFPTXRrGaPtp/Ydij2jgkRe4uoUvAKxW2d8b9zYL0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "B+Uv2u48WALOO0L311z+eryjYQzKJVMfdHMZPhOAFmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "INXXp0wDyVCq+NtfIrrC2ciETmyW/dWB/48/u4yLEZ4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "se7DGo8XrlrQDLEcco1tZrQt9kDe+0RTyl2bw/quG4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vr0m2+Zk9lbN6UgWCyn8xJWJOokU3IDYab5U5q1+CgQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XI+eJ8Gy2JktG1gICgoj1qpsfy1tKmH0kglWbaQH6DA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A+UCuNnuAUqnQzspA6TVqUPRmtZmpSex5HFw7THRxs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xaH2Ehfljd19uo0Fvb3iwkdaiWEVQd2YPoitgEPkhSM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S/iZBJGcc8+qZxyMtab65MMBoSglybwk3x58Nb86gnY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "w14ZE5qqY5YgkS4Zcs9YNbrQbY1XfGOOHNn9bOYnFVQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0MhGd/jEF1vjkKGp+ZMn9SjLK54jkp9W4Hg+Sp/oxaI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "92QZ73e/NRTYgCm4aifaKth6aAsKnLLccBc0zx/qUTY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WOjzemCgFJOiGIp81RSVh/tFlzSTj9eFWcBnsiv2Ycs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DrsP9CmfKPjw5yLL8bnSeAxfNzAwlb+Z8OqCiKgBY7o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lMogqg8veBv6mri3/drMe9afJiKMvevkmGcw9BedfLo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TxqwNcY8Tg2MPpNdkPBwvfpuTttSYRHU26DGECKYQ9o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "l0u1b4b4vYACWIwfnB7PZac4oDEgjQZCzHruNPTgAIY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "iVSGQ+cCfhbWIrY/v/WBORK92elu9gfRKyGhr6r/k00=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yK1forG50diEXte8ECzjfpHeYsPyuQ/dgxbxn/nzY5k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gIfTLCD3VwnOwkC0zPXWTqaITxX6ZplA69PO2a6zolc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "O/Zxlgh3WqpzJ7+Sd8XWMVID4/GXJUUWaSqfgDUi3b0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZQ6yv368zwahUqSUYH/StL0Qgz/TwS1CzlMjVDvCciI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m2rPEYkjwyiKdonMrKlcF7hya4lFOAUwEePJ3SgrNx8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mq0yl5iVKlq71bT/dT/fXOWf2n90bTnXFnOdGDN0JOc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6qDGMXipPLC2O6EAAMjO2F9xx4rdqZso4IkPpH2304U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jvQHRQQa2RIszE2LX2Hv2LbRhYawJ6qmtRt8HZzFQXg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ovJXQrkZlpeHRciKyE/WWNm5O389gRgzx1W+Dw596X4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "a4kgRNvYctGYqyQv9qScL/WkljTYVylJ9pE9KDULlxU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qV4Q48vPiCJMTjljotzYKI/zfExWpkKOSHGcAjGyDig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jtI7zbBF+QW/aYYTkn90zzyHLXLgmy7l1bzgMb2oqic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q0KmJl9txPdn962UNvnfe6UFhdk9YaFZuTm33F+csso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ULNdEqeZJgtmNOhN/Y9INzsE9AnxWYwOMn+pIbRXIFs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "R4oz9+wkdjpKe5tE1jpG7IURAnfvS5fLP4LrD5cZfTE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qG5Z7VhwSu/HT/YFTgDzyAAzJKq51xPw2HeEV5btYC4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OM/1DmIIZ5Qyhtq8TGkHTBEMVKjAnKRZMRXYtTG8ctc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2R5vZbljLXnDFA99YfGuRB7pAdPJVKsT25zLNMC0fUk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OMbavF2EmdAz1fHkLV3ctFEUDfriKhoT2gidwHZ9z1o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MWT4Zrw3/vVvTYMa1Is5Pjr3wEwnBfnEAPPUAHKQhNU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tBkRPfG9yxfKocQx5pAJX0oEHKPL0Tgtr+0UYe09InE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lqxpnDR/H0YgH7RcfKoNoaaRhe1SIazIeMbQ1fu9y3Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "utT1UdR22PWOTrOkZauztX613lAplV4eh/ejTRb7ZSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S+Y2yFyKi/a6FXhih4yGo29X8I8OT6/zwEoX6NMKT4o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QSjVppg29x6oS5yBg8OFjrFt0tuTpWCuKxfIy0k8YnE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y3r6/Xsfvsl3HksXlVYkJgHUqpQGfICxg3x9f8Zw1qM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BSltHzEwDjFN4du9rDHAPvl22atlcTioEtt+gC5L1tk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0arGXjSN0006UnXbrWsGqhvBair569DeFDUME3Df3rA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s/DumaMad08S+PBUUcrS+v42K0z8HgcdiQtrFAEu2Qs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EzJ8Y8N0OQBTlnvrK82PdevDNZZO4E6CNgYVu8Cj6Ks=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VA4vr8jBPI5QdiPrULzzZjBMIUbG3V7Slg5zm0bFcKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YAOvEB2ZLtq9LQiFViBHWaxxWVVonC2rNYj9tN9s3L0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hgaHMo9aAGS+nBwvqnTjZO+YkiQPY1c1XcIYeaYKHyI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YvaoLt3ZpH0atB0tNzwMjpoxRYJXl0DqSjisMJiGVBE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EMmW6CptFsiLoPOi5/uAJQ2FmeLg6mCpuVLLrRWk7Mc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1jQsNMarSnarlYmXEuoFokeBMg/090qUD9wqo1Zn8Gs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hupXNKhRpJxpyDAAP1TgJ5JMZh9lhbMk6s7D7dMS3C8=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Aggregate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Aggregate.yml
new file mode 100644
index 00000000000..20c9cfd51ed
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Aggregate.yml
@@ -0,0 +1,1673 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ # Tests for Decimal (without precision) must only run against a replica set. Decimal (without precision) queries are expected to take a long time and may exceed the default mongos timeout.
+ topology: [ "replicaset" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimal', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Decimal. Aggregate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimal: { $numberDecimal: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimal: { $numberDecimal: "1" } }
+ - name: aggregate
+ arguments:
+ pipeline: [{ $match: { "encryptedDecimal": { $gt: {$numberDecimal: "0" }} } }]
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDecimal": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDecimal": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ aggregate: *collection_name
+ pipeline: [
+ {
+ "$match": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ]
+ cursor: {}
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: aggregate
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimal": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0l86Ag5OszXpa78SlOUV3K9nff5iC1p0mRXtLg9M1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hn6yuxFHodeyu7ISlhYrbSf9pTiH4TDEvbYLWjTwFO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zdf4y2etKBuIpkEU1zMwoCkCsdisfXZCh8QPamm+drY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rOQ9oMdiK5xxGH+jPzOvwVqdGGnF3+HkJXxn81s6hp4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "61aKKsE3+BJHHWYvs3xSIBvlRmKswmaOo5rygQJguUg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KuDb/GIzqDM8wv7m7m8AECiWJbae5EKKtJRugZx7kR0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Q+t8t2TmNUiCIorVr9F3AlVnX+Mpt2ZYvN+s8UGict8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJRZIpKxUgHyL83kW8cvfjkxN3z6WoNnUg+SQw+LK+k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnUsYjip8SvW0+m9mR5WWTkpK+p6uwJ6yBUAlBnFKMk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PArHlz+yPRYDycAP/PgnI/AkP8Wgmfg++Vf4UG1Bf0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wnIh53Q3jeK8jEBe1n8kJLa89/H0BxO26ZU8SRIAs9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4F8U59gzBLGhq58PEWQk2nch+R0Va7eTUoxMneReUIA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ihKagIW3uT1dm22ROr/g5QaCpxZVj2+Fs/YSdM2Noco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EJtUOOwjkrPUi9mavYAi+Gom9Y2DuFll7aDwo4mq0M0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dIkr8dbaVRQFskAVT6B286BbcBBt1pZPEOcTZqk4ZcI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aYVAcZYkH/Tieoa1XOjE/zCy5AJcVTHjS0NG2QB7muA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sBidL6y8TenseetpioIAAtn0lK/7C8MoW4JXpVYi3z8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Dd2klU/t4R86c2WJcJDAd57k/N7OjvYSO5Vf8KH8sw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I3jZ92WEVmZmgaIkLbuWhBxl7EM6bEjiEttgBJunArA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aGHoQMlgJoGvArjfIbc3nnkoc8SWBxcrN7hSmjMRzos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bpiWPnF/KVBQr5F6MEwc5ZZayzIRvQOLDAm4ntwOi8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI7QVKbE6avWgDD9h4QKyFlnTxFCwd2iLySKakxNR/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XGsge0CnoaXgE3rcpKm8AEeku5QVfokS3kcI+JKV1lk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JQxlryW2Q5WOwfrjAnaZxDvC83Dg6sjRVP5zegf2WiM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YFuHKJOfoqp1iGVxoFjx7bLYgVdsN4GuUFxEgO9HJ5s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z6vUdiCR18ylKomf08uxcQHeRtmyav7/Ecvzz4av3k4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SPGo1Ib5AiP/tSllL7Z5PAypvnKdwJLzt8imfIMSEJQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m94Nh6PFFQFLIib9Cu5LAKavhXnagSHG6F5EF8lD96I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pfEkQI98mB+gm1+JbmVurPAODMFPJ4E8DnqfVyUWbSo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DNj3OVRLbr43s0vd+rgWghOL3FqeO/60npdojC8Ry/M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kAYIQrjHVu49W8FTxyxJeiLVRWWjC9fPcBn+Hx1F+Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aCSO7UVOpoQvu/iridarxkxV1SVxU1i9HVSYXUAeXk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Gh6hTP/yj1IKlXQ+Q69KTfMlGZjEcXoRLGbQHNFo/1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/gDgIFQ4tAlJk3GN48IS5Qa5IPmErwGk8CHxAbp6gs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PICyimwPjxpusyKxNssOOwUotAUbygpyEtORsVGXT8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4lu+cBHyAUvuxC6JUNyHLzHsCogGSWFFnUCkDwfQdgI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pSndkmoNUJwXjgkbkgOrT5f9nSvuoMEZOkwAN9ElRaE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tyW+D4i26QihNM5MuBM+wnt5AdWGSJaJ4X5ydc9iWTU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9Syjr8RoxUgPKr+O5rsCu07AvcebA4P8IVKyS1NVLWc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "67tPfDYnK2tmrioI51fOBG0ygajcV0pLo5+Zm/rEW7U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y0EiPRxYTuS1eVTIaPQUQBBxwkyxNckbePvKgChwd0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NWd+2veAaeXQgR3vCvzlI4R1WW67D5YsVLdoXfdb8qg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PY5RQqKQsL2GqBBSPNOEVpojNFRX/NijCghIpxD6CZk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lcvwTyEjFlssCJtdjRpdN6oY+C7bxZY+WA+QAqzj9zg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWE7XRNylvTwO/9Fv56dNqUaQWMmESNS/GNIwgBaEI0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ijwlrUeS8nRYqK1F8kiCYF0mNDolEZS+/lJO1Lg93C8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8KzV+qYGYuIjoNj8eEpnTuHrMYuhzphl80rS6wrODuU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wDyTLjSEFF895hSQsHvmoEQVS6KIkZOtq1c9dVogm9I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SGrtPuMYCjUrfKF0Pq/thdaQzmGBMUvlwN3ORIu9tHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KySHON3hIoUk4xWcwTqk6IL0kgjzjxgMBObVIkCGvk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hBIdS9j0XJPeT4ot73ngELkpUoSixvRBvdOL9z48jY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Tx6um0q9HjS5ZvlFhvukpI6ORnyrXMWVW1OoxvgqII0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zFKlyfX5H81+d4A4J3FKn4T5JfG+OWtR06ddyX4Mxas=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cGgCDuPV7MeMMYEDpgOupqyNP4BQ4H7rBnd2QygumgM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IPaUoy98v11EoglTpJ4kBlEawoZ8y7BPwzjLYBpkvHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Pfo4Am6tOWAyZNn8G9W5HWWGC3ZWmX0igI/RRB870Ro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fnTSjd7bC1Udoq6iM7UDnHAC/lsIXSHp/Gy332qw+/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fApBgVRrTDyEumkeWs5p3ag9KB48SbU4Si0dl7Ns9rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QxudfBItgoCnUj5NXVnSmWH3HK76YtKkMmzn4lyyUYY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sSOvwhKa29Wq94bZ5jGIiJQGbG1uBrKSBfOYBz/oZeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FdaMgwwJ0NKsqmPZLC5oE+/0D74Dfpvig3LaI5yW5Fs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sRWBy12IERN43BSZIrnBfC9+zFBUdvjTlkqIH81NGt4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/4tIRpxKhoOwnXAiFn1Z7Xmric4USOIfKvTYQXk3QTc=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimal": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RGTjNVEsNJb+DG7DpPOam8rQWD5HZAMpRyiTQaw7tk8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I93Md7QNPGmEEGYU1+VVCqBPBEvXdqHPtTJtMOn06Yk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "GecBFQ1PemlECWZWCl7f74vmsL6eB6mzQ9n6tK6FYfs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QpjhZl+O1ORifgtCZuWAdcP6OKL7IZ2cA46v8FJcV28=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RlQWwhU+uVv0a+9IB5cUkEfvHBvOw3B1Sx6WfPWMqes=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubb81XTC7U+4tcNzf1oYvOY6gR5hC2Izqx54f4GuJ0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6M4Q5NMQ9TqNnjzGOxIkiUIY8TEL0I3XD1QnhefQUqU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BtInzk9t2FFMCEY6AQ7zN8jwrrZEs2irSv6q0Q4NaIw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vxXfETu9cuBIpRBo3jUUU04mJIH/aAhLX8K6VI5Xv0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXPCdS+q23zi1bkPnaVG2j0PsVtxdeSLJ//h6J1x8RU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KY3KkfBAsN2l80wbpj41G0gwBR5KmmFnZcagg7D3ENk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI8NFAxXCX4VOnY5X73K6KI/Yspd3aR94KV39MhJlAw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nFxH0UC3mATKA6Vboz+QX/hAjj19kF/SH6H5Cne7qC0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q8hYqIYaIi7nOdG/7qQZYnz8Bsacfi66M1nVku4SH08=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4saA92R4arp4anvD9xFtze+sNcQqTEhPHyl1h70A8NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DbIziOBRRyeQS6RtBR09E37LV+CTKrEjGoRMLSpG6eE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Fv80Plp/7w2gnVqrwawLd6qhJ10G4NCDm3re67cNq4Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "T/T2oiQCBBES4YN7EodzPRdabZSFlYIClHBym+bQUZE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZQgHD3l46Ujqtbnj1VbbeM29C9wJzOhz+yZ/7XdSrxk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ltlFKzWvyZvHxDFOYDd/XXJ6kUiJj0ln2HTCEz2o4Z4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "flW8A7bltC1u8bzx0WJtxosGJdOVsJFfbx33jxnpFGg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SXO+92QbMKwUSG2t27ciunV1c3VvFkUuDmSczpRe008=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+KioGs1GM+xRBzFE67ePTWj04KMSE5/Y6qUF7nJ5kvU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L3xNVbh6YH+RzqABN+5Jgb7T234Efpn766DmUvxIxgg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hPF+60mBYPjh21dEmPlBhKgyc9S2qLtTkypYvnqP2Fc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EletRsETy2HcjaPIm2c8CkT7ch/P3pJJDC8hasepcSU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "r5bMXUaNKqLPxZ+TG9HYTG4aSDgcpim27rN8rQFkM0w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Q7Erdr8+/S0wUEDDIqlS5XjBVWvhZY65K0uUDb6+Ns=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xEcnhXy35hbXNVBPOOt3TUHbxvKfQ48KjA9b6/rbMqQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "T8bEpiQNgsEudXvyKE9SZlSvbpV/LUaslsdqgSFltyo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hIoiaF2YjnxDbODfhFEB+JGZ5nf8suD3Shck5bwQ3N0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qnA6qzejeRJ0rsZaZ0zOvKAaXyxt5lpscKQNYFZNl4k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "anAKCL2DN/le2VaP0n2ucYSEH/DaaEH/8Sa4OqTZsRA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JCZlBJaFm618oWYSnT9Jr1MtwFVw4BZjOzO+5yWgR90=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yxyk4n9762WzcDVGnTn4jCqUnSMIVCrLDIjCX1QVj34=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fDI6fdKvDJwim5/CQwWZEzcrXE3LHgy7FTtffcC7tXE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Vex+gcz5T+WkzsVZQrkqUR2ryyZbnaOGuWpYvjN0zCw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8TLEXz+Gbbp6llHpZXVjLsdlYY9f6hrKpHVpyfDe0RY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7fTyt5BrunypS65TfOzFW2E2qdIuT4SLeDeGlbQoJCs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8fKGrkqN0/KuSjyXgDBmRauDKrSa//JBKRWHEB9xBf4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s4codmG7uN4ss6P357jL21lazEe90M9GOK5WrOknSV0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RkSpua8XF+NUdxVDU90EbLUTTyZFX3tt3atBTroFaRk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LnTCuCDyAHK5B9KXzjtwGmWB+qergQk2OCjnIx9MI2A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cBFh0virAX4pVXf/udIGI2951i0+0aZAdJcBVGtYnT4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "G54X6myQXWZ5fw/G31en3QbdgfXzL9+hFTtJpnWMqDI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EdsiiuezcsFJFnYIyGjCOhnqMj1BOwTB5EFxN+ERUkg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dVH9MXLtk0WTwGQ3xmrhOqfropMUkDW3o6paNPGl3NU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sB3HqXKWY3pKbuEH8BTbfNIGfbY+7/ZbOc3XC+JRNNI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WHyDk62Xhqbo4/iie2aLIM4x2uuAjv6102dJSHI58oM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pNUFuHpeNRDUZ/NrtII2c6sNc9eGR1lIUlIyXKERA+0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UPa+pdCqnN0bfAptdzldQOSd01gidrDKy8KhWrpSKAI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "l+7dOAlo+HUffMqFYXL6pgUFeTbwOM9CjKQLxEoLtc4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SRnDXV/rN6C8xwMutv9E1luv3DOUio3VkgPr8Cpm7Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QcH6gl+gX7xZ7OWhUNQMbndJy0Piz49pDo6RsnLkVSA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "t+uL4DnfsI/Zll/KXWW1cOKX3Hu8WIkm3pt9efCVSAQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "myutHDctku/+Uug/nD8gRbYvmx/IovtoAAC2/fz2oHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6C+cjD0e0nSCP6cPqQYbNG7SlOd6Mfvi8hyfm7Ng+D8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zg01JSoOj9oBKT0S1ldJucXzY5AKgreS+h2xJreWTOs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7qQ80/FjodHl1m1py/Oii0/9C/xWbLdhaRXQ+kkCP10=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YwWMNH07vL6c5Nhg+MRnVByhzUunu8y0VLM9z/XvR5U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dle8bU98+fudAbc14SToZFkwvV3tcYVsjDug0NWljpc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "J+eKL1vPJmlzltvhI6Li5Fz/TJmi3Ng+ehRTcs46API=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB3XzfFygLwC3WHkj0up+VbEd25KKoce1vOpG/5bwK4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vnVnmOnL+z2pqwE+A6cVKS0Iwy4F4/2IiElJca9bUQM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+lG5r/Fpqry3BtFuvY67+RntmHAMDoLVOSGc6ZoXPb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L5MXQertqc6uj7ADe8aWKbd1sYHPCE7P1VYVg9Zc3VI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "imKONuZgopt0bhM3GMX2WVPwQYMTobuUUEdhcLfHs4c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eOkU1J1uVbiVFWBerbXsSIVcF2nqiicTkFy4x7kFHB8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gI0uDhXeoH/UatDQKEf4qo8FHzWZDhb/wuWTqbq/ID4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cOkd5Aa3btYhtojE/smsF/PJnULqQ4NNqTkU6KXTFmo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AWNJMs1MTe294oFipp8Y6P0CjpkZ4qCZoClQF3XcHq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6gJtlzXOFhGYrVbTuRMmvMlDTwXdNtR9aGBlHZPwIMw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LEmwVGA/xsEG7UrcOoYLFu6KCXgijzFznenknuDacm8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mIRFPTXRrGaPtp/Ydij2jgkRe4uoUvAKxW2d8b9zYL0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "B+Uv2u48WALOO0L311z+eryjYQzKJVMfdHMZPhOAFmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "INXXp0wDyVCq+NtfIrrC2ciETmyW/dWB/48/u4yLEZ4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "se7DGo8XrlrQDLEcco1tZrQt9kDe+0RTyl2bw/quG4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vr0m2+Zk9lbN6UgWCyn8xJWJOokU3IDYab5U5q1+CgQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XI+eJ8Gy2JktG1gICgoj1qpsfy1tKmH0kglWbaQH6DA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A+UCuNnuAUqnQzspA6TVqUPRmtZmpSex5HFw7THRxs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xaH2Ehfljd19uo0Fvb3iwkdaiWEVQd2YPoitgEPkhSM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S/iZBJGcc8+qZxyMtab65MMBoSglybwk3x58Nb86gnY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "w14ZE5qqY5YgkS4Zcs9YNbrQbY1XfGOOHNn9bOYnFVQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0MhGd/jEF1vjkKGp+ZMn9SjLK54jkp9W4Hg+Sp/oxaI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "92QZ73e/NRTYgCm4aifaKth6aAsKnLLccBc0zx/qUTY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WOjzemCgFJOiGIp81RSVh/tFlzSTj9eFWcBnsiv2Ycs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DrsP9CmfKPjw5yLL8bnSeAxfNzAwlb+Z8OqCiKgBY7o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lMogqg8veBv6mri3/drMe9afJiKMvevkmGcw9BedfLo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TxqwNcY8Tg2MPpNdkPBwvfpuTttSYRHU26DGECKYQ9o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "l0u1b4b4vYACWIwfnB7PZac4oDEgjQZCzHruNPTgAIY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "iVSGQ+cCfhbWIrY/v/WBORK92elu9gfRKyGhr6r/k00=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yK1forG50diEXte8ECzjfpHeYsPyuQ/dgxbxn/nzY5k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gIfTLCD3VwnOwkC0zPXWTqaITxX6ZplA69PO2a6zolc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "O/Zxlgh3WqpzJ7+Sd8XWMVID4/GXJUUWaSqfgDUi3b0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZQ6yv368zwahUqSUYH/StL0Qgz/TwS1CzlMjVDvCciI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m2rPEYkjwyiKdonMrKlcF7hya4lFOAUwEePJ3SgrNx8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mq0yl5iVKlq71bT/dT/fXOWf2n90bTnXFnOdGDN0JOc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6qDGMXipPLC2O6EAAMjO2F9xx4rdqZso4IkPpH2304U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jvQHRQQa2RIszE2LX2Hv2LbRhYawJ6qmtRt8HZzFQXg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ovJXQrkZlpeHRciKyE/WWNm5O389gRgzx1W+Dw596X4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "a4kgRNvYctGYqyQv9qScL/WkljTYVylJ9pE9KDULlxU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qV4Q48vPiCJMTjljotzYKI/zfExWpkKOSHGcAjGyDig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jtI7zbBF+QW/aYYTkn90zzyHLXLgmy7l1bzgMb2oqic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q0KmJl9txPdn962UNvnfe6UFhdk9YaFZuTm33F+csso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ULNdEqeZJgtmNOhN/Y9INzsE9AnxWYwOMn+pIbRXIFs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "R4oz9+wkdjpKe5tE1jpG7IURAnfvS5fLP4LrD5cZfTE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qG5Z7VhwSu/HT/YFTgDzyAAzJKq51xPw2HeEV5btYC4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OM/1DmIIZ5Qyhtq8TGkHTBEMVKjAnKRZMRXYtTG8ctc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2R5vZbljLXnDFA99YfGuRB7pAdPJVKsT25zLNMC0fUk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OMbavF2EmdAz1fHkLV3ctFEUDfriKhoT2gidwHZ9z1o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MWT4Zrw3/vVvTYMa1Is5Pjr3wEwnBfnEAPPUAHKQhNU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tBkRPfG9yxfKocQx5pAJX0oEHKPL0Tgtr+0UYe09InE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lqxpnDR/H0YgH7RcfKoNoaaRhe1SIazIeMbQ1fu9y3Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "utT1UdR22PWOTrOkZauztX613lAplV4eh/ejTRb7ZSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S+Y2yFyKi/a6FXhih4yGo29X8I8OT6/zwEoX6NMKT4o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QSjVppg29x6oS5yBg8OFjrFt0tuTpWCuKxfIy0k8YnE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y3r6/Xsfvsl3HksXlVYkJgHUqpQGfICxg3x9f8Zw1qM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BSltHzEwDjFN4du9rDHAPvl22atlcTioEtt+gC5L1tk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0arGXjSN0006UnXbrWsGqhvBair569DeFDUME3Df3rA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s/DumaMad08S+PBUUcrS+v42K0z8HgcdiQtrFAEu2Qs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EzJ8Y8N0OQBTlnvrK82PdevDNZZO4E6CNgYVu8Cj6Ks=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VA4vr8jBPI5QdiPrULzzZjBMIUbG3V7Slg5zm0bFcKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YAOvEB2ZLtq9LQiFViBHWaxxWVVonC2rNYj9tN9s3L0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hgaHMo9aAGS+nBwvqnTjZO+YkiQPY1c1XcIYeaYKHyI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YvaoLt3ZpH0atB0tNzwMjpoxRYJXl0DqSjisMJiGVBE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EMmW6CptFsiLoPOi5/uAJQ2FmeLg6mCpuVLLrRWk7Mc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1jQsNMarSnarlYmXEuoFokeBMg/090qUD9wqo1Zn8Gs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hupXNKhRpJxpyDAAP1TgJ5JMZh9lhbMk6s7D7dMS3C8=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Correctness.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Correctness.json
new file mode 100644
index 00000000000..89b7bd3118b
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Correctness.json
@@ -0,0 +1,1158 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "Find with $gt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$gte": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$lt": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$lte": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$numberDecimal": "0.0"
+ },
+ "$lt": {
+ "$numberDecimal": "2.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$in": [
+ {
+ "$numberDecimal": "0.0"
+ }
+ ]
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimal": {
+ "$gte": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimal": {
+ "$lt": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimal": {
+ "$lte": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$numberDecimal": "0.0"
+ },
+ "$lt": {
+ "$numberDecimal": "2.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimal": {
+ "$in": [
+ {
+ "$numberDecimal": "0.0"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Insert Int",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "cannot encrypt element"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Find Int",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$gte": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": {
+ "errorContains": "field type is not supported"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Correctness.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Correctness.yml
new file mode 100644
index 00000000000..03df38175f2
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Correctness.yml
@@ -0,0 +1,291 @@
+# Test correctness results.
+# Does not include command monitoring expectations or outcome assertions to make tests more readable.
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ # Tests for Decimal (without precision) must only run against a replica set. Decimal (without precision) queries are expected to take a long time and may exceed the default mongos timeout.
+ topology: [ "replicaset" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimal', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "Find with $gt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimal: { $numberDecimal: "0.0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimal: { $numberDecimal: "1.0" } }
+ - name: find
+ arguments:
+ filter: { encryptedDecimal: { $gt: { $numberDecimal: "0.0" } }}
+ result: [*doc1]
+
+ - description: "Find with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimal: { $gte: { $numberDecimal: "0.0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimal: { $gt: { $numberDecimal: "1.0" } }}
+ result: []
+
+ - description: "Find with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimal: { $lt: { $numberDecimal: "1.0" } }}
+ result: [*doc0]
+
+ - description: "Find with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimal: { $lte: { $numberDecimal: "1.0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimal: { $gt: { $numberDecimal: "0.0" }, $lt: { $numberDecimal: "2.0"} }}
+ result: [*doc1]
+
+ - description: "Find with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimal: { $numberDecimal: "0.0" } }
+ result: [*doc0]
+ - name: find
+ arguments:
+ filter: { encryptedDecimal: { $numberDecimal: "1.0" } }
+ result: [*doc1]
+
+ - description: "Find with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimal: { $in: [ {$numberDecimal: "0.0"} ] } }
+ result: [*doc0]
+
+ - description: "Aggregate with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimal: { $gte: { $numberDecimal: "0.0" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimal: { $gt: { $numberDecimal: "1.0" } }} }
+ result: []
+
+ - description: "Aggregate with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimal: { $lt: { $numberDecimal: "1.0" } }} }
+ result: [*doc0]
+
+ - description: "Aggregate with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimal: { $lte: { $numberDecimal: "1.0" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimal: { $gt: { $numberDecimal: "0.0" }, $lt: { $numberDecimal: "2.0"} }} }
+ result: [*doc1]
+
+ - description: "Aggregate with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimal: { $numberDecimal: "0.0" } } }
+ result: [*doc0]
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimal: { $numberDecimal: "1.0" } } }
+ result: [*doc1]
+
+ - description: "Aggregate with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimal: { $in: [ {$numberDecimal: "0.0"} ] } } }
+ result: [*doc0]
+
+ - description: "Wrong type: Insert Int"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: { _id: 0, encryptedDecimal: { $numberInt: "0" }} }
+ result:
+ # Expect an error from mongocryptd.
+ errorContains: "cannot encrypt element"
+
+ - description: "Wrong type: Find Int"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: find
+ arguments:
+ filter: { encryptedDecimal: { $gte: { $numberInt: "0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result:
+ # expect an error from libmongocrypt.
+ errorContains: "field type is not supported"
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Delete.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Delete.json
new file mode 100644
index 00000000000..0463be1c69f
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Delete.json
@@ -0,0 +1,1133 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Decimal. Delete.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "deleteOne",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ "result": {
+ "deletedCount": 1
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "delete": "default",
+ "deletes": [
+ {
+ "q": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimal": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "delete"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimal": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0l86Ag5OszXpa78SlOUV3K9nff5iC1p0mRXtLg9M1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hn6yuxFHodeyu7ISlhYrbSf9pTiH4TDEvbYLWjTwFO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zdf4y2etKBuIpkEU1zMwoCkCsdisfXZCh8QPamm+drY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rOQ9oMdiK5xxGH+jPzOvwVqdGGnF3+HkJXxn81s6hp4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "61aKKsE3+BJHHWYvs3xSIBvlRmKswmaOo5rygQJguUg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KuDb/GIzqDM8wv7m7m8AECiWJbae5EKKtJRugZx7kR0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Q+t8t2TmNUiCIorVr9F3AlVnX+Mpt2ZYvN+s8UGict8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJRZIpKxUgHyL83kW8cvfjkxN3z6WoNnUg+SQw+LK+k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnUsYjip8SvW0+m9mR5WWTkpK+p6uwJ6yBUAlBnFKMk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PArHlz+yPRYDycAP/PgnI/AkP8Wgmfg++Vf4UG1Bf0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wnIh53Q3jeK8jEBe1n8kJLa89/H0BxO26ZU8SRIAs9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4F8U59gzBLGhq58PEWQk2nch+R0Va7eTUoxMneReUIA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ihKagIW3uT1dm22ROr/g5QaCpxZVj2+Fs/YSdM2Noco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EJtUOOwjkrPUi9mavYAi+Gom9Y2DuFll7aDwo4mq0M0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dIkr8dbaVRQFskAVT6B286BbcBBt1pZPEOcTZqk4ZcI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aYVAcZYkH/Tieoa1XOjE/zCy5AJcVTHjS0NG2QB7muA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sBidL6y8TenseetpioIAAtn0lK/7C8MoW4JXpVYi3z8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Dd2klU/t4R86c2WJcJDAd57k/N7OjvYSO5Vf8KH8sw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I3jZ92WEVmZmgaIkLbuWhBxl7EM6bEjiEttgBJunArA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aGHoQMlgJoGvArjfIbc3nnkoc8SWBxcrN7hSmjMRzos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bpiWPnF/KVBQr5F6MEwc5ZZayzIRvQOLDAm4ntwOi8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI7QVKbE6avWgDD9h4QKyFlnTxFCwd2iLySKakxNR/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XGsge0CnoaXgE3rcpKm8AEeku5QVfokS3kcI+JKV1lk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JQxlryW2Q5WOwfrjAnaZxDvC83Dg6sjRVP5zegf2WiM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YFuHKJOfoqp1iGVxoFjx7bLYgVdsN4GuUFxEgO9HJ5s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z6vUdiCR18ylKomf08uxcQHeRtmyav7/Ecvzz4av3k4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SPGo1Ib5AiP/tSllL7Z5PAypvnKdwJLzt8imfIMSEJQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m94Nh6PFFQFLIib9Cu5LAKavhXnagSHG6F5EF8lD96I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pfEkQI98mB+gm1+JbmVurPAODMFPJ4E8DnqfVyUWbSo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DNj3OVRLbr43s0vd+rgWghOL3FqeO/60npdojC8Ry/M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kAYIQrjHVu49W8FTxyxJeiLVRWWjC9fPcBn+Hx1F+Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aCSO7UVOpoQvu/iridarxkxV1SVxU1i9HVSYXUAeXk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Gh6hTP/yj1IKlXQ+Q69KTfMlGZjEcXoRLGbQHNFo/1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/gDgIFQ4tAlJk3GN48IS5Qa5IPmErwGk8CHxAbp6gs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PICyimwPjxpusyKxNssOOwUotAUbygpyEtORsVGXT8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4lu+cBHyAUvuxC6JUNyHLzHsCogGSWFFnUCkDwfQdgI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pSndkmoNUJwXjgkbkgOrT5f9nSvuoMEZOkwAN9ElRaE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tyW+D4i26QihNM5MuBM+wnt5AdWGSJaJ4X5ydc9iWTU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9Syjr8RoxUgPKr+O5rsCu07AvcebA4P8IVKyS1NVLWc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "67tPfDYnK2tmrioI51fOBG0ygajcV0pLo5+Zm/rEW7U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y0EiPRxYTuS1eVTIaPQUQBBxwkyxNckbePvKgChwd0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NWd+2veAaeXQgR3vCvzlI4R1WW67D5YsVLdoXfdb8qg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PY5RQqKQsL2GqBBSPNOEVpojNFRX/NijCghIpxD6CZk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lcvwTyEjFlssCJtdjRpdN6oY+C7bxZY+WA+QAqzj9zg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWE7XRNylvTwO/9Fv56dNqUaQWMmESNS/GNIwgBaEI0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ijwlrUeS8nRYqK1F8kiCYF0mNDolEZS+/lJO1Lg93C8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8KzV+qYGYuIjoNj8eEpnTuHrMYuhzphl80rS6wrODuU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wDyTLjSEFF895hSQsHvmoEQVS6KIkZOtq1c9dVogm9I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SGrtPuMYCjUrfKF0Pq/thdaQzmGBMUvlwN3ORIu9tHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KySHON3hIoUk4xWcwTqk6IL0kgjzjxgMBObVIkCGvk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hBIdS9j0XJPeT4ot73ngELkpUoSixvRBvdOL9z48jY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Tx6um0q9HjS5ZvlFhvukpI6ORnyrXMWVW1OoxvgqII0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zFKlyfX5H81+d4A4J3FKn4T5JfG+OWtR06ddyX4Mxas=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cGgCDuPV7MeMMYEDpgOupqyNP4BQ4H7rBnd2QygumgM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IPaUoy98v11EoglTpJ4kBlEawoZ8y7BPwzjLYBpkvHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Pfo4Am6tOWAyZNn8G9W5HWWGC3ZWmX0igI/RRB870Ro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fnTSjd7bC1Udoq6iM7UDnHAC/lsIXSHp/Gy332qw+/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fApBgVRrTDyEumkeWs5p3ag9KB48SbU4Si0dl7Ns9rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QxudfBItgoCnUj5NXVnSmWH3HK76YtKkMmzn4lyyUYY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sSOvwhKa29Wq94bZ5jGIiJQGbG1uBrKSBfOYBz/oZeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FdaMgwwJ0NKsqmPZLC5oE+/0D74Dfpvig3LaI5yW5Fs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sRWBy12IERN43BSZIrnBfC9+zFBUdvjTlkqIH81NGt4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/4tIRpxKhoOwnXAiFn1Z7Xmric4USOIfKvTYQXk3QTc=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Delete.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Delete.yml
new file mode 100644
index 00000000000..fa2daa78e61
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Delete.yml
@@ -0,0 +1,908 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ # Tests for Decimal (without precision) must only run against a replica set. Decimal (without precision) queries are expected to take a long time and may exceed the default mongos timeout.
+ topology: [ "replicaset" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimal', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Decimal. Delete."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimal: { $numberDecimal: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimal: { $numberDecimal: "1" } }
+ - name: deleteOne
+ arguments:
+ filter: { "encryptedDecimal": { $gt: {$numberDecimal: "0" }} }
+ result:
+ deletedCount: 1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDecimal": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDecimal": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ delete: *collection_name
+ deletes: [
+ {
+ "q": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ]
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimal": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: delete
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimal": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0l86Ag5OszXpa78SlOUV3K9nff5iC1p0mRXtLg9M1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hn6yuxFHodeyu7ISlhYrbSf9pTiH4TDEvbYLWjTwFO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zdf4y2etKBuIpkEU1zMwoCkCsdisfXZCh8QPamm+drY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rOQ9oMdiK5xxGH+jPzOvwVqdGGnF3+HkJXxn81s6hp4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "61aKKsE3+BJHHWYvs3xSIBvlRmKswmaOo5rygQJguUg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KuDb/GIzqDM8wv7m7m8AECiWJbae5EKKtJRugZx7kR0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Q+t8t2TmNUiCIorVr9F3AlVnX+Mpt2ZYvN+s8UGict8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJRZIpKxUgHyL83kW8cvfjkxN3z6WoNnUg+SQw+LK+k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnUsYjip8SvW0+m9mR5WWTkpK+p6uwJ6yBUAlBnFKMk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PArHlz+yPRYDycAP/PgnI/AkP8Wgmfg++Vf4UG1Bf0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wnIh53Q3jeK8jEBe1n8kJLa89/H0BxO26ZU8SRIAs9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4F8U59gzBLGhq58PEWQk2nch+R0Va7eTUoxMneReUIA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ihKagIW3uT1dm22ROr/g5QaCpxZVj2+Fs/YSdM2Noco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EJtUOOwjkrPUi9mavYAi+Gom9Y2DuFll7aDwo4mq0M0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dIkr8dbaVRQFskAVT6B286BbcBBt1pZPEOcTZqk4ZcI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aYVAcZYkH/Tieoa1XOjE/zCy5AJcVTHjS0NG2QB7muA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sBidL6y8TenseetpioIAAtn0lK/7C8MoW4JXpVYi3z8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Dd2klU/t4R86c2WJcJDAd57k/N7OjvYSO5Vf8KH8sw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I3jZ92WEVmZmgaIkLbuWhBxl7EM6bEjiEttgBJunArA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aGHoQMlgJoGvArjfIbc3nnkoc8SWBxcrN7hSmjMRzos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bpiWPnF/KVBQr5F6MEwc5ZZayzIRvQOLDAm4ntwOi8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI7QVKbE6avWgDD9h4QKyFlnTxFCwd2iLySKakxNR/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XGsge0CnoaXgE3rcpKm8AEeku5QVfokS3kcI+JKV1lk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JQxlryW2Q5WOwfrjAnaZxDvC83Dg6sjRVP5zegf2WiM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YFuHKJOfoqp1iGVxoFjx7bLYgVdsN4GuUFxEgO9HJ5s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z6vUdiCR18ylKomf08uxcQHeRtmyav7/Ecvzz4av3k4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SPGo1Ib5AiP/tSllL7Z5PAypvnKdwJLzt8imfIMSEJQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m94Nh6PFFQFLIib9Cu5LAKavhXnagSHG6F5EF8lD96I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pfEkQI98mB+gm1+JbmVurPAODMFPJ4E8DnqfVyUWbSo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DNj3OVRLbr43s0vd+rgWghOL3FqeO/60npdojC8Ry/M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kAYIQrjHVu49W8FTxyxJeiLVRWWjC9fPcBn+Hx1F+Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aCSO7UVOpoQvu/iridarxkxV1SVxU1i9HVSYXUAeXk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Gh6hTP/yj1IKlXQ+Q69KTfMlGZjEcXoRLGbQHNFo/1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/gDgIFQ4tAlJk3GN48IS5Qa5IPmErwGk8CHxAbp6gs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PICyimwPjxpusyKxNssOOwUotAUbygpyEtORsVGXT8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4lu+cBHyAUvuxC6JUNyHLzHsCogGSWFFnUCkDwfQdgI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pSndkmoNUJwXjgkbkgOrT5f9nSvuoMEZOkwAN9ElRaE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tyW+D4i26QihNM5MuBM+wnt5AdWGSJaJ4X5ydc9iWTU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9Syjr8RoxUgPKr+O5rsCu07AvcebA4P8IVKyS1NVLWc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "67tPfDYnK2tmrioI51fOBG0ygajcV0pLo5+Zm/rEW7U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y0EiPRxYTuS1eVTIaPQUQBBxwkyxNckbePvKgChwd0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NWd+2veAaeXQgR3vCvzlI4R1WW67D5YsVLdoXfdb8qg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PY5RQqKQsL2GqBBSPNOEVpojNFRX/NijCghIpxD6CZk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lcvwTyEjFlssCJtdjRpdN6oY+C7bxZY+WA+QAqzj9zg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWE7XRNylvTwO/9Fv56dNqUaQWMmESNS/GNIwgBaEI0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ijwlrUeS8nRYqK1F8kiCYF0mNDolEZS+/lJO1Lg93C8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8KzV+qYGYuIjoNj8eEpnTuHrMYuhzphl80rS6wrODuU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wDyTLjSEFF895hSQsHvmoEQVS6KIkZOtq1c9dVogm9I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SGrtPuMYCjUrfKF0Pq/thdaQzmGBMUvlwN3ORIu9tHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KySHON3hIoUk4xWcwTqk6IL0kgjzjxgMBObVIkCGvk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hBIdS9j0XJPeT4ot73ngELkpUoSixvRBvdOL9z48jY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Tx6um0q9HjS5ZvlFhvukpI6ORnyrXMWVW1OoxvgqII0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zFKlyfX5H81+d4A4J3FKn4T5JfG+OWtR06ddyX4Mxas=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cGgCDuPV7MeMMYEDpgOupqyNP4BQ4H7rBnd2QygumgM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IPaUoy98v11EoglTpJ4kBlEawoZ8y7BPwzjLYBpkvHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Pfo4Am6tOWAyZNn8G9W5HWWGC3ZWmX0igI/RRB870Ro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fnTSjd7bC1Udoq6iM7UDnHAC/lsIXSHp/Gy332qw+/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fApBgVRrTDyEumkeWs5p3ag9KB48SbU4Si0dl7Ns9rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QxudfBItgoCnUj5NXVnSmWH3HK76YtKkMmzn4lyyUYY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sSOvwhKa29Wq94bZ5jGIiJQGbG1uBrKSBfOYBz/oZeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FdaMgwwJ0NKsqmPZLC5oE+/0D74Dfpvig3LaI5yW5Fs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sRWBy12IERN43BSZIrnBfC9+zFBUdvjTlkqIH81NGt4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/4tIRpxKhoOwnXAiFn1Z7Xmric4USOIfKvTYQXk3QTc=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-FindOneAndUpdate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-FindOneAndUpdate.json
new file mode 100644
index 00000000000..d0e29677714
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-FindOneAndUpdate.json
@@ -0,0 +1,1930 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Decimal. FindOneAndUpdate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "findOneAndUpdate",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$numberDecimal": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDecimal": {
+ "$numberDecimal": "2"
+ }
+ }
+ },
+ "returnDocument": "Before"
+ },
+ "result": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "findAndModify": "default",
+ "query": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimal": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "findAndModify"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimal": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0l86Ag5OszXpa78SlOUV3K9nff5iC1p0mRXtLg9M1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hn6yuxFHodeyu7ISlhYrbSf9pTiH4TDEvbYLWjTwFO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zdf4y2etKBuIpkEU1zMwoCkCsdisfXZCh8QPamm+drY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rOQ9oMdiK5xxGH+jPzOvwVqdGGnF3+HkJXxn81s6hp4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "61aKKsE3+BJHHWYvs3xSIBvlRmKswmaOo5rygQJguUg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KuDb/GIzqDM8wv7m7m8AECiWJbae5EKKtJRugZx7kR0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Q+t8t2TmNUiCIorVr9F3AlVnX+Mpt2ZYvN+s8UGict8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJRZIpKxUgHyL83kW8cvfjkxN3z6WoNnUg+SQw+LK+k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnUsYjip8SvW0+m9mR5WWTkpK+p6uwJ6yBUAlBnFKMk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PArHlz+yPRYDycAP/PgnI/AkP8Wgmfg++Vf4UG1Bf0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wnIh53Q3jeK8jEBe1n8kJLa89/H0BxO26ZU8SRIAs9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4F8U59gzBLGhq58PEWQk2nch+R0Va7eTUoxMneReUIA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ihKagIW3uT1dm22ROr/g5QaCpxZVj2+Fs/YSdM2Noco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EJtUOOwjkrPUi9mavYAi+Gom9Y2DuFll7aDwo4mq0M0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dIkr8dbaVRQFskAVT6B286BbcBBt1pZPEOcTZqk4ZcI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aYVAcZYkH/Tieoa1XOjE/zCy5AJcVTHjS0NG2QB7muA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sBidL6y8TenseetpioIAAtn0lK/7C8MoW4JXpVYi3z8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Dd2klU/t4R86c2WJcJDAd57k/N7OjvYSO5Vf8KH8sw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I3jZ92WEVmZmgaIkLbuWhBxl7EM6bEjiEttgBJunArA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aGHoQMlgJoGvArjfIbc3nnkoc8SWBxcrN7hSmjMRzos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bpiWPnF/KVBQr5F6MEwc5ZZayzIRvQOLDAm4ntwOi8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI7QVKbE6avWgDD9h4QKyFlnTxFCwd2iLySKakxNR/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XGsge0CnoaXgE3rcpKm8AEeku5QVfokS3kcI+JKV1lk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JQxlryW2Q5WOwfrjAnaZxDvC83Dg6sjRVP5zegf2WiM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YFuHKJOfoqp1iGVxoFjx7bLYgVdsN4GuUFxEgO9HJ5s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z6vUdiCR18ylKomf08uxcQHeRtmyav7/Ecvzz4av3k4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SPGo1Ib5AiP/tSllL7Z5PAypvnKdwJLzt8imfIMSEJQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m94Nh6PFFQFLIib9Cu5LAKavhXnagSHG6F5EF8lD96I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pfEkQI98mB+gm1+JbmVurPAODMFPJ4E8DnqfVyUWbSo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DNj3OVRLbr43s0vd+rgWghOL3FqeO/60npdojC8Ry/M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kAYIQrjHVu49W8FTxyxJeiLVRWWjC9fPcBn+Hx1F+Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aCSO7UVOpoQvu/iridarxkxV1SVxU1i9HVSYXUAeXk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Gh6hTP/yj1IKlXQ+Q69KTfMlGZjEcXoRLGbQHNFo/1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/gDgIFQ4tAlJk3GN48IS5Qa5IPmErwGk8CHxAbp6gs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PICyimwPjxpusyKxNssOOwUotAUbygpyEtORsVGXT8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4lu+cBHyAUvuxC6JUNyHLzHsCogGSWFFnUCkDwfQdgI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pSndkmoNUJwXjgkbkgOrT5f9nSvuoMEZOkwAN9ElRaE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tyW+D4i26QihNM5MuBM+wnt5AdWGSJaJ4X5ydc9iWTU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9Syjr8RoxUgPKr+O5rsCu07AvcebA4P8IVKyS1NVLWc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "67tPfDYnK2tmrioI51fOBG0ygajcV0pLo5+Zm/rEW7U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y0EiPRxYTuS1eVTIaPQUQBBxwkyxNckbePvKgChwd0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NWd+2veAaeXQgR3vCvzlI4R1WW67D5YsVLdoXfdb8qg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PY5RQqKQsL2GqBBSPNOEVpojNFRX/NijCghIpxD6CZk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lcvwTyEjFlssCJtdjRpdN6oY+C7bxZY+WA+QAqzj9zg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWE7XRNylvTwO/9Fv56dNqUaQWMmESNS/GNIwgBaEI0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ijwlrUeS8nRYqK1F8kiCYF0mNDolEZS+/lJO1Lg93C8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8KzV+qYGYuIjoNj8eEpnTuHrMYuhzphl80rS6wrODuU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wDyTLjSEFF895hSQsHvmoEQVS6KIkZOtq1c9dVogm9I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SGrtPuMYCjUrfKF0Pq/thdaQzmGBMUvlwN3ORIu9tHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KySHON3hIoUk4xWcwTqk6IL0kgjzjxgMBObVIkCGvk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hBIdS9j0XJPeT4ot73ngELkpUoSixvRBvdOL9z48jY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Tx6um0q9HjS5ZvlFhvukpI6ORnyrXMWVW1OoxvgqII0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zFKlyfX5H81+d4A4J3FKn4T5JfG+OWtR06ddyX4Mxas=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cGgCDuPV7MeMMYEDpgOupqyNP4BQ4H7rBnd2QygumgM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IPaUoy98v11EoglTpJ4kBlEawoZ8y7BPwzjLYBpkvHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Pfo4Am6tOWAyZNn8G9W5HWWGC3ZWmX0igI/RRB870Ro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fnTSjd7bC1Udoq6iM7UDnHAC/lsIXSHp/Gy332qw+/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fApBgVRrTDyEumkeWs5p3ag9KB48SbU4Si0dl7Ns9rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QxudfBItgoCnUj5NXVnSmWH3HK76YtKkMmzn4lyyUYY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sSOvwhKa29Wq94bZ5jGIiJQGbG1uBrKSBfOYBz/oZeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FdaMgwwJ0NKsqmPZLC5oE+/0D74Dfpvig3LaI5yW5Fs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sRWBy12IERN43BSZIrnBfC9+zFBUdvjTlkqIH81NGt4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/4tIRpxKhoOwnXAiFn1Z7Xmric4USOIfKvTYQXk3QTc=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimal": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mr/laWHUijZT5VT3x2a7crb7wgd/UXOGz8jr8BVqBpM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXVD/HSbBljko0jJcaxJ1nrzs2+pchLQqYR3vywS8SU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VDCpBYsJIxTfcI6Zgf7FTmKMxUffQv+Ys8zt5dlK76I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zYDslUwOUVNwTYkETfjceH/PU3bac9X3UuQyYJ19qK0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rAOmHSz18Jx107xpbv9fYcPOmh/KPAqge0PAtuhIRnc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BFOB1OGVUen7VsOuS0g8Ti7oDsTt2Yj/k/7ta8YAdGM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2fckE5SPs0GU+akDkUEM6mm0EtcV3WDE/sQsnTtodlk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mi9+aNjuwIvaMpSHENvKzKRAmX9cYguo2mXLvOoftHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "K6TWn4VcWWkz/gkUkLmbtwkG7SNeABICmLDnoYJFlLU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z+2/cEtGU0Fq7QJFNGA/0y4aWAsw0ncG6X0LYRqwS3c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rrSIf+lgcNZFbbUkS9BmE045jRWBpcBJXHzfMVEFuzE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KlHL3Kyje1/LMIfgbCqw1SolxffJvvgsYBV5y77wxuA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hzJ1YBoETmYeCh352dBmG8d8Wse/bUcqojTWpWQlgsc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lSdcllDXx8MA+s0GULjDA1lQkcV0L8/aHtZ6dM2pZ2c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "HGr7JLTTA7ksAnlmjSIwwdBVvgr3fv46/FTdiCPYpos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mMr25v1VwOEVZ8xaNUTHJCcsYqV+kwK6RzGYilxPtJ4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "129hJbziPJzNo0IoTU3bECdge0FtaPW8dm4dyNVNwYU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "doiLJ96qoo+v7NqIAZLq6BI5axV8Id8gT5vyJ1ZZ0PM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cW/Lcul3xYmfyvI/0x/+ybN78aQmBK1XIGs1EEU09N8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1aVIwzu9N5EJV9yEES+/g6hOTH7cA2NTcLIc59cu0wU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kw5tyl7Ew0r1wFyrN1mB9FiVW2hK2BxxxUuJDNWjyjQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ADAY2YBrm6RJBDY/eLLcfNxmSJku+mefz74gH66oyco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8gkqB1LojzPrstpFG7RHYmWxXpIlPDTqWnNsXH7XDRU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TESfVQMDQjfTZmHmUeYUE2XrokJ6CcrsKx/GmypGjOw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qFM+HFVQ539S0Ouynd1fBHoemFxtU9PRxE5+Dq7Ljy4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jPiFgUZteSmOg4wf3bsEKCZzcnxmMoILsgp/GaZD+dM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YaWUgJhYgPNN7TkFK16H8SsQS226JguaVhOIQxZwQNQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x90/Qk3AgyaFsvWf2KUCu5XF3j76WFSjt/GrnG01060=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZGWybWL/xlEdMYRFCZDUoz10sywTf7U/7wufsb78lH0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8l4ganN66jIcdxfHAdYLaym/mdzUUQ8TViw3MDRySPc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c8p5XEGTqxqvRGVlR+nkxw9uUdoqDqTB0jlYQ361qMA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1ZGFLlpQBcU3zIUg8MmgWwFKVz/SaA7eSYFrfe3Hb70=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "34529174M77rHr3Ftn9r8jU4a5ztYtyVhMn1wryZSkU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YkQ4pxFWzc49MS0vZM6S8mNo4wAwo21rePBeF3C+9mI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MhOf4mYY00KKVhptOcXf0bXB7WfuuM801MRJg4vXPgc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7pbbD8ihNIYIBJ3tAUPGzHpFPpIeCTAk5L88qCB0/9w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C9Q5PoNJTQo6pmNzXEEXUEqH22//UUWY1gqILcIywec=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AqGVk1QjDNDLYWGRBX/nv9QdGR2SEgXZEhF0EWBAiSE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/sGI3VCbJUKATULJmhTayPOeVW+5MjWSvVCqS77sRbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yOtbL0ih7gsuoxVtRrACMz+4N5uo7jIR7zzmtih2Beo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uA6dkb2Iyg9Su8UNDvZzkPx33kPZtWr/CCuEY+XgzUM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1DoSFPdHIplqZk+DyWAmEPckWwXw/GdB25NLmzeEZhk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OfDVS0T3ZuIXI/LNbTp6C9UbPIWLKiMy6Wx+9tqNl+g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3PZjHXbmG6GtPz+iapKtQ3yY4PoFFgjIy+fV2xQv1YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kaoLN0BoBWsmqE7kKkJQejATmLShd8qffcAmlhsxsGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vpiw9KgQdegGmp7IJnSGX2miujRLU0xzs0ITTqbPW7c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NuXFf7xGUefYjIUTuMxNUTCfVHrF8oL0AT7dPv5Plk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8Tz53LxtfEBJ9eR+d2690kwNsqPV6XyKo2PlqZCbUrc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "e6zsOmHSyV8tyQtSX6BSwui6wK9v1xG3giY/IILJQ2w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2fedFMCxa2DzmIpfbDKGXhQg0PPwbUv6vIWdwwlvhms=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yEJKMFnWXTC8tJUfzCInzQRByNEPjHxpw4L4m8No91Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YbFuWwOiFuQyOzIJXDbOkCWC2DyrG+248TBuVCa1pXU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "w7IkwGdrguwDrar5+w0Z3va5wXyZ4VXJkDMISyRjPGo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YmJUoILTRJPhyIyWyXJTsQ6KSZHHbEpwPVup6Ldm/Ko=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FvMjcwVZJmfh6FP/yBg2wgskK+KHD8YVUY6WtrE8xbg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "h4HCtD4HyYz0nci49IVAa10Z4NJD/FHnRMV4sRX6qro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nC7BpXCmym+a0Is2kReM9cYN2M1Eh5rVo8fjms14Oiw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1qtVWaeVo649ZZZtN8gXbwLgMWGLhz8beODbvru0I7Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Ej+mC0QFyMNIiSjR939S+iGBm7dm+1xObu5IcF/OpbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UQ8LbUG3cMegbr9yKfKanAPQE1EfPkFciVDrNqZ5GHY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4iI3mXIDjnX+ralk1HhJY43mZx2uTJM7hsv9MQzTX7E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0WQCcs3rvsasgohERHHCaBM4Iy6yomS4qJ5To3/yYiw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qDCTVPoue1/DOAGNAlUstdA9Sid8MgEY4e5EzHcVHRk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9F9Mus0UnlzHb8E8ImxgXtz6SU98YXD0JqswOKw/Bzs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pctHpHKVBBcsahQ6TNh6/1V1ZrqOtKSAPtATV6BJqh0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vfR3C/4cPkVdxtNaqtF/v635ONbhTf5WbwJM6s4EXNE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ejP43xUBIex6szDcqExAFpx1IE/Ksi5ywJ84GKDFRrs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jbP4AWYd3S2f3ejmMG7dS5IbrFol48UUoT+ve3JLN6U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CiDifI7958sUjNqJUBQULeyF7x0Up3loPWvYKw9uAuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "e2dQFsiHqd2BFHNhlSxocjd+cPs4wkcUW/CnCz4KNuM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PJFckVmzBipqaEqsuP2mkjhJE4qhw36NhfQ9DcOHyEU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S3MeuJhET/B8VcfZYDR9fvX0nscDj416jdDekhmK11s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CGVHZRXpuNtQviDB2Kj03Q8uvs4w3RwTgV847R7GwPw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yUGgmgyLrxbEpDVy89XN3c2cmFpZXWWmuJ/35zVZ+Jw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "inb6Q97mL1a9onfNTT8v9wsoi/fz7KXKq3p8j90AU9c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CCyYx/4npq9xGO1lsCo8ZJhFO9/tN7DB+/DTE778rYg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LNnYw4fwbiAZu0kBdAHPEm/OFnreS+oArdB5O/l/I98=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "P006SxmUS/RjiQJVYPdMFnNo3827GIEmSzagggkg05Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oyvwY+WsnYV6UHuPki1o0ILJ2jN4uyXf9yaUNtZJyBA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "36Lk3RHWh1wmtCWC/Yj6jNIo17U5y6SofAgQjzjVxD8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vOOo8FqeHnuO9mqOYjIb4vgwIwVyXZ5Y+bY5d9tGFUM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bJiDJjwQRNxqxlGjRm5lLziFhcfTDCnQ/qU1V85qcRg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2Qgrm1n0wUELAQnpkEiIHB856yv76q8jLbpiucetcm0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5ciPOYxTK0WDwwYyfs7yiVymwtYQXDELLxmM4JLl4/o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "31dC2WUSIOKQc4jwT6PikfeYTwi80mTlh7P31T5KNQU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YluTV2Mu53EGCKLcWfHZb0BM/IPW2xJdG3vYlDMEsM4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dh/8lGo2Ek6KukSwutH6Q35iy8TgV0FN0SJqe0ZVHN8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EVw6HpIs3BKen2qY2gz4y5dw1JpXilfh07msZfQqJpc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FYolLla9L8EZMROEdWetozroU40Dnmwwx2jIMrr7c1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8M6k4QIutSIj6CM41vvkQtuFsaGrjoR9SZJVSLbfGKQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9LM0VoddDNHway442MqY+Z7vohB2UHau/cddshhzf40=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "66i8Ytco4Yq/FMl6pIRZazz3CZlu8fO2OI6Pne0pvHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2a/HgX+MjZxjXtSvHgF1yEpHMJBkl8Caee8XrJtn0WM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "frhBM662c4ZVG7mWP8K/HhRjd01lydW/cPcHnDjifqc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6k1T7Q1t668PBqv6fwpVnT1HWh7Am5LtbKvwPJKcpGU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UlJ5Edfusp8S/Pyhw6KTglIejmbr1HO0zUeHn/qFETA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jsxsB+1ECB3assUdoC333do9tYH+LglHmVSJHy4N8Hg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2nzIQxGYF7j3bGsIesECEOqhObKs/9ywknPHeJ3yges=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xJYKtuWrX90JrJVoYtnwP7Ce59XQGFYoalxpNfBXEH0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NLI5lriBTleGCELcHBtNnmnvwSRkHHaLOX4cKboMgTw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hUOQV0RmE5aJdJww1AR9rirJG4zOYPo+6cCkgn/BGvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "h4G2Of76AgxcUziBwCyH+ayMOpdBWzg4yFrTfehSC2c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VuamM75RzGfQpj2/Y1jSVuQLrhy6OAwlZxjuQLB/9Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kn9+hLq7hvw02xr9vrplOCDXKBTuFhfbX7d5v/l85Pg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fAiGqKyLZpGngBYFbtYUYt8LUrJ49vYafiboifTDjxs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BxRILymgfVJCczqjUIWXcfrfSgrrYkxTM5VTg0HkZLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CrFY/PzfPU2zsFkGLu/dI6mEeizZzCR+uYgjZBAHro0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AEbrIuwvXLTtYgMjOqnGQ8y8axUn5Ukrn7UZRSyfQVw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ouWeVH3PEFg+dKWlXc6BmqirJOaVWjJbMzZbCsce4dA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+hd6xFB+EG+kVP7WH4uMd1CLaWMnt5xJRaY/Guuga9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zmpGalfAOL3gmcUMJYcLYIRT/2VDO/1Dw4KdYZoNcng=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2PbHAoM/46J2UIZ/vyksKzmVVfxA7YUyIxWeL/N/vBk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7fD9x+zk5MVFesb59Klqiwwmve7P5ON/5COURXj5smE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tlrNQ4jaq051iaWonuv1sSrYhKkL1LtNZuHsvATha3s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fBodm28iClNpvlRyVq0dOdXQ08S7/N3aDwid+PdWvRo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "O+/nnRqT3Zv7yMMGug8GhKHaWy6u7BfRGtZoj0sdN1c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5AZZ/RTMY4Photnm/cpXZr/HnFRi3eljacMsipkJLHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oFVyo/kgoMxBIk2VE52ySSimeyU+Gr0EfCwapXnTpKA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z8v59DfcnviA0mzvnUk+URVO0UuqAWvtarEgJva/n1c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "P64GOntZ+zBJEHkigoh9FSxSO+rJTqR20z5aiGQ9an4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xMbSuDPfWuO/Dm7wuVl06GnzG9uzTlJJX9vFy7boGlY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kXPB19mRClxdH2UsHwlttS6lLU2uHvzuZgZz7kC45jU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NDVjVYXAw4k0w4tFzvs7QDq39aaU3HQor4I2XMKKnCk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uKw/+ErVfpTO1dGUfd3T/eWfZW3nUxXCdBGdjvHtZ88=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "av0uxEzWkizYWm0QUM/MN1hLibnxPvCWJKwjOV4yVQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ERwUC47dvgOBzIsEESMIioLYbFOxOe8PtJTnmDkKuHM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2gseKlG5Le12fS/vj4eaED4lturF16kAgJ1TpW3HxEE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7Cvg0Y3j/5i2F1TeXxlMmU7xwif5dCmwkZAOrVC5K2Y=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-FindOneAndUpdate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-FindOneAndUpdate.yml
new file mode 100644
index 00000000000..3b772cd6d78
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-FindOneAndUpdate.yml
@@ -0,0 +1,1688 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ # Tests for Decimal (without precision) must only run against a replica set. Decimal (without precision) queries are expected to take a long time and may exceed the default mongos timeout.
+ topology: [ "replicaset" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimal', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Decimal. FindOneAndUpdate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimal: { $numberDecimal: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimal: { $numberDecimal: "1" } }
+ - name: findOneAndUpdate
+ arguments:
+ filter: { encryptedDecimal: { $gt: {$numberDecimal: "0"}} }
+ update: { "$set": { "encryptedDecimal": {$numberDecimal: "2"}}}
+ returnDocument: Before
+ result: *doc1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDecimal": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDecimal": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ findAndModify: *collection_name
+ query: {
+ "encryptedDecimal": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ update: { "$set": {"encryptedDecimal": { $$type: "binData" }} }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimal": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: findAndModify
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimal": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0l86Ag5OszXpa78SlOUV3K9nff5iC1p0mRXtLg9M1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hn6yuxFHodeyu7ISlhYrbSf9pTiH4TDEvbYLWjTwFO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zdf4y2etKBuIpkEU1zMwoCkCsdisfXZCh8QPamm+drY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rOQ9oMdiK5xxGH+jPzOvwVqdGGnF3+HkJXxn81s6hp4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "61aKKsE3+BJHHWYvs3xSIBvlRmKswmaOo5rygQJguUg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KuDb/GIzqDM8wv7m7m8AECiWJbae5EKKtJRugZx7kR0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Q+t8t2TmNUiCIorVr9F3AlVnX+Mpt2ZYvN+s8UGict8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJRZIpKxUgHyL83kW8cvfjkxN3z6WoNnUg+SQw+LK+k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnUsYjip8SvW0+m9mR5WWTkpK+p6uwJ6yBUAlBnFKMk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PArHlz+yPRYDycAP/PgnI/AkP8Wgmfg++Vf4UG1Bf0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wnIh53Q3jeK8jEBe1n8kJLa89/H0BxO26ZU8SRIAs9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4F8U59gzBLGhq58PEWQk2nch+R0Va7eTUoxMneReUIA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ihKagIW3uT1dm22ROr/g5QaCpxZVj2+Fs/YSdM2Noco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EJtUOOwjkrPUi9mavYAi+Gom9Y2DuFll7aDwo4mq0M0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dIkr8dbaVRQFskAVT6B286BbcBBt1pZPEOcTZqk4ZcI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aYVAcZYkH/Tieoa1XOjE/zCy5AJcVTHjS0NG2QB7muA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sBidL6y8TenseetpioIAAtn0lK/7C8MoW4JXpVYi3z8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Dd2klU/t4R86c2WJcJDAd57k/N7OjvYSO5Vf8KH8sw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I3jZ92WEVmZmgaIkLbuWhBxl7EM6bEjiEttgBJunArA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aGHoQMlgJoGvArjfIbc3nnkoc8SWBxcrN7hSmjMRzos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bpiWPnF/KVBQr5F6MEwc5ZZayzIRvQOLDAm4ntwOi8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI7QVKbE6avWgDD9h4QKyFlnTxFCwd2iLySKakxNR/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XGsge0CnoaXgE3rcpKm8AEeku5QVfokS3kcI+JKV1lk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JQxlryW2Q5WOwfrjAnaZxDvC83Dg6sjRVP5zegf2WiM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YFuHKJOfoqp1iGVxoFjx7bLYgVdsN4GuUFxEgO9HJ5s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z6vUdiCR18ylKomf08uxcQHeRtmyav7/Ecvzz4av3k4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SPGo1Ib5AiP/tSllL7Z5PAypvnKdwJLzt8imfIMSEJQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m94Nh6PFFQFLIib9Cu5LAKavhXnagSHG6F5EF8lD96I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pfEkQI98mB+gm1+JbmVurPAODMFPJ4E8DnqfVyUWbSo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DNj3OVRLbr43s0vd+rgWghOL3FqeO/60npdojC8Ry/M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kAYIQrjHVu49W8FTxyxJeiLVRWWjC9fPcBn+Hx1F+Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aCSO7UVOpoQvu/iridarxkxV1SVxU1i9HVSYXUAeXk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Gh6hTP/yj1IKlXQ+Q69KTfMlGZjEcXoRLGbQHNFo/1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/gDgIFQ4tAlJk3GN48IS5Qa5IPmErwGk8CHxAbp6gs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PICyimwPjxpusyKxNssOOwUotAUbygpyEtORsVGXT8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4lu+cBHyAUvuxC6JUNyHLzHsCogGSWFFnUCkDwfQdgI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pSndkmoNUJwXjgkbkgOrT5f9nSvuoMEZOkwAN9ElRaE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tyW+D4i26QihNM5MuBM+wnt5AdWGSJaJ4X5ydc9iWTU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9Syjr8RoxUgPKr+O5rsCu07AvcebA4P8IVKyS1NVLWc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "67tPfDYnK2tmrioI51fOBG0ygajcV0pLo5+Zm/rEW7U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y0EiPRxYTuS1eVTIaPQUQBBxwkyxNckbePvKgChwd0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NWd+2veAaeXQgR3vCvzlI4R1WW67D5YsVLdoXfdb8qg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PY5RQqKQsL2GqBBSPNOEVpojNFRX/NijCghIpxD6CZk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lcvwTyEjFlssCJtdjRpdN6oY+C7bxZY+WA+QAqzj9zg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWE7XRNylvTwO/9Fv56dNqUaQWMmESNS/GNIwgBaEI0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ijwlrUeS8nRYqK1F8kiCYF0mNDolEZS+/lJO1Lg93C8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8KzV+qYGYuIjoNj8eEpnTuHrMYuhzphl80rS6wrODuU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wDyTLjSEFF895hSQsHvmoEQVS6KIkZOtq1c9dVogm9I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SGrtPuMYCjUrfKF0Pq/thdaQzmGBMUvlwN3ORIu9tHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KySHON3hIoUk4xWcwTqk6IL0kgjzjxgMBObVIkCGvk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hBIdS9j0XJPeT4ot73ngELkpUoSixvRBvdOL9z48jY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Tx6um0q9HjS5ZvlFhvukpI6ORnyrXMWVW1OoxvgqII0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zFKlyfX5H81+d4A4J3FKn4T5JfG+OWtR06ddyX4Mxas=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cGgCDuPV7MeMMYEDpgOupqyNP4BQ4H7rBnd2QygumgM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IPaUoy98v11EoglTpJ4kBlEawoZ8y7BPwzjLYBpkvHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Pfo4Am6tOWAyZNn8G9W5HWWGC3ZWmX0igI/RRB870Ro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fnTSjd7bC1Udoq6iM7UDnHAC/lsIXSHp/Gy332qw+/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fApBgVRrTDyEumkeWs5p3ag9KB48SbU4Si0dl7Ns9rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QxudfBItgoCnUj5NXVnSmWH3HK76YtKkMmzn4lyyUYY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sSOvwhKa29Wq94bZ5jGIiJQGbG1uBrKSBfOYBz/oZeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FdaMgwwJ0NKsqmPZLC5oE+/0D74Dfpvig3LaI5yW5Fs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sRWBy12IERN43BSZIrnBfC9+zFBUdvjTlkqIH81NGt4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/4tIRpxKhoOwnXAiFn1Z7Xmric4USOIfKvTYQXk3QTc=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimal": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mr/laWHUijZT5VT3x2a7crb7wgd/UXOGz8jr8BVqBpM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXVD/HSbBljko0jJcaxJ1nrzs2+pchLQqYR3vywS8SU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VDCpBYsJIxTfcI6Zgf7FTmKMxUffQv+Ys8zt5dlK76I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zYDslUwOUVNwTYkETfjceH/PU3bac9X3UuQyYJ19qK0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rAOmHSz18Jx107xpbv9fYcPOmh/KPAqge0PAtuhIRnc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BFOB1OGVUen7VsOuS0g8Ti7oDsTt2Yj/k/7ta8YAdGM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2fckE5SPs0GU+akDkUEM6mm0EtcV3WDE/sQsnTtodlk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mi9+aNjuwIvaMpSHENvKzKRAmX9cYguo2mXLvOoftHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "K6TWn4VcWWkz/gkUkLmbtwkG7SNeABICmLDnoYJFlLU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z+2/cEtGU0Fq7QJFNGA/0y4aWAsw0ncG6X0LYRqwS3c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rrSIf+lgcNZFbbUkS9BmE045jRWBpcBJXHzfMVEFuzE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KlHL3Kyje1/LMIfgbCqw1SolxffJvvgsYBV5y77wxuA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hzJ1YBoETmYeCh352dBmG8d8Wse/bUcqojTWpWQlgsc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lSdcllDXx8MA+s0GULjDA1lQkcV0L8/aHtZ6dM2pZ2c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "HGr7JLTTA7ksAnlmjSIwwdBVvgr3fv46/FTdiCPYpos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mMr25v1VwOEVZ8xaNUTHJCcsYqV+kwK6RzGYilxPtJ4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "129hJbziPJzNo0IoTU3bECdge0FtaPW8dm4dyNVNwYU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "doiLJ96qoo+v7NqIAZLq6BI5axV8Id8gT5vyJ1ZZ0PM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cW/Lcul3xYmfyvI/0x/+ybN78aQmBK1XIGs1EEU09N8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1aVIwzu9N5EJV9yEES+/g6hOTH7cA2NTcLIc59cu0wU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kw5tyl7Ew0r1wFyrN1mB9FiVW2hK2BxxxUuJDNWjyjQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ADAY2YBrm6RJBDY/eLLcfNxmSJku+mefz74gH66oyco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8gkqB1LojzPrstpFG7RHYmWxXpIlPDTqWnNsXH7XDRU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TESfVQMDQjfTZmHmUeYUE2XrokJ6CcrsKx/GmypGjOw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qFM+HFVQ539S0Ouynd1fBHoemFxtU9PRxE5+Dq7Ljy4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jPiFgUZteSmOg4wf3bsEKCZzcnxmMoILsgp/GaZD+dM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YaWUgJhYgPNN7TkFK16H8SsQS226JguaVhOIQxZwQNQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x90/Qk3AgyaFsvWf2KUCu5XF3j76WFSjt/GrnG01060=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZGWybWL/xlEdMYRFCZDUoz10sywTf7U/7wufsb78lH0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8l4ganN66jIcdxfHAdYLaym/mdzUUQ8TViw3MDRySPc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c8p5XEGTqxqvRGVlR+nkxw9uUdoqDqTB0jlYQ361qMA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1ZGFLlpQBcU3zIUg8MmgWwFKVz/SaA7eSYFrfe3Hb70=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "34529174M77rHr3Ftn9r8jU4a5ztYtyVhMn1wryZSkU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YkQ4pxFWzc49MS0vZM6S8mNo4wAwo21rePBeF3C+9mI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MhOf4mYY00KKVhptOcXf0bXB7WfuuM801MRJg4vXPgc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7pbbD8ihNIYIBJ3tAUPGzHpFPpIeCTAk5L88qCB0/9w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C9Q5PoNJTQo6pmNzXEEXUEqH22//UUWY1gqILcIywec=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AqGVk1QjDNDLYWGRBX/nv9QdGR2SEgXZEhF0EWBAiSE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/sGI3VCbJUKATULJmhTayPOeVW+5MjWSvVCqS77sRbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yOtbL0ih7gsuoxVtRrACMz+4N5uo7jIR7zzmtih2Beo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uA6dkb2Iyg9Su8UNDvZzkPx33kPZtWr/CCuEY+XgzUM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1DoSFPdHIplqZk+DyWAmEPckWwXw/GdB25NLmzeEZhk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OfDVS0T3ZuIXI/LNbTp6C9UbPIWLKiMy6Wx+9tqNl+g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3PZjHXbmG6GtPz+iapKtQ3yY4PoFFgjIy+fV2xQv1YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kaoLN0BoBWsmqE7kKkJQejATmLShd8qffcAmlhsxsGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vpiw9KgQdegGmp7IJnSGX2miujRLU0xzs0ITTqbPW7c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NuXFf7xGUefYjIUTuMxNUTCfVHrF8oL0AT7dPv5Plk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8Tz53LxtfEBJ9eR+d2690kwNsqPV6XyKo2PlqZCbUrc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "e6zsOmHSyV8tyQtSX6BSwui6wK9v1xG3giY/IILJQ2w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2fedFMCxa2DzmIpfbDKGXhQg0PPwbUv6vIWdwwlvhms=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yEJKMFnWXTC8tJUfzCInzQRByNEPjHxpw4L4m8No91Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YbFuWwOiFuQyOzIJXDbOkCWC2DyrG+248TBuVCa1pXU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "w7IkwGdrguwDrar5+w0Z3va5wXyZ4VXJkDMISyRjPGo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YmJUoILTRJPhyIyWyXJTsQ6KSZHHbEpwPVup6Ldm/Ko=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FvMjcwVZJmfh6FP/yBg2wgskK+KHD8YVUY6WtrE8xbg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "h4HCtD4HyYz0nci49IVAa10Z4NJD/FHnRMV4sRX6qro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nC7BpXCmym+a0Is2kReM9cYN2M1Eh5rVo8fjms14Oiw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1qtVWaeVo649ZZZtN8gXbwLgMWGLhz8beODbvru0I7Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Ej+mC0QFyMNIiSjR939S+iGBm7dm+1xObu5IcF/OpbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UQ8LbUG3cMegbr9yKfKanAPQE1EfPkFciVDrNqZ5GHY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4iI3mXIDjnX+ralk1HhJY43mZx2uTJM7hsv9MQzTX7E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0WQCcs3rvsasgohERHHCaBM4Iy6yomS4qJ5To3/yYiw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qDCTVPoue1/DOAGNAlUstdA9Sid8MgEY4e5EzHcVHRk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9F9Mus0UnlzHb8E8ImxgXtz6SU98YXD0JqswOKw/Bzs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pctHpHKVBBcsahQ6TNh6/1V1ZrqOtKSAPtATV6BJqh0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vfR3C/4cPkVdxtNaqtF/v635ONbhTf5WbwJM6s4EXNE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ejP43xUBIex6szDcqExAFpx1IE/Ksi5ywJ84GKDFRrs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jbP4AWYd3S2f3ejmMG7dS5IbrFol48UUoT+ve3JLN6U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CiDifI7958sUjNqJUBQULeyF7x0Up3loPWvYKw9uAuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "e2dQFsiHqd2BFHNhlSxocjd+cPs4wkcUW/CnCz4KNuM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PJFckVmzBipqaEqsuP2mkjhJE4qhw36NhfQ9DcOHyEU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S3MeuJhET/B8VcfZYDR9fvX0nscDj416jdDekhmK11s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CGVHZRXpuNtQviDB2Kj03Q8uvs4w3RwTgV847R7GwPw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yUGgmgyLrxbEpDVy89XN3c2cmFpZXWWmuJ/35zVZ+Jw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "inb6Q97mL1a9onfNTT8v9wsoi/fz7KXKq3p8j90AU9c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CCyYx/4npq9xGO1lsCo8ZJhFO9/tN7DB+/DTE778rYg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LNnYw4fwbiAZu0kBdAHPEm/OFnreS+oArdB5O/l/I98=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "P006SxmUS/RjiQJVYPdMFnNo3827GIEmSzagggkg05Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oyvwY+WsnYV6UHuPki1o0ILJ2jN4uyXf9yaUNtZJyBA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "36Lk3RHWh1wmtCWC/Yj6jNIo17U5y6SofAgQjzjVxD8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vOOo8FqeHnuO9mqOYjIb4vgwIwVyXZ5Y+bY5d9tGFUM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bJiDJjwQRNxqxlGjRm5lLziFhcfTDCnQ/qU1V85qcRg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2Qgrm1n0wUELAQnpkEiIHB856yv76q8jLbpiucetcm0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5ciPOYxTK0WDwwYyfs7yiVymwtYQXDELLxmM4JLl4/o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "31dC2WUSIOKQc4jwT6PikfeYTwi80mTlh7P31T5KNQU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YluTV2Mu53EGCKLcWfHZb0BM/IPW2xJdG3vYlDMEsM4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dh/8lGo2Ek6KukSwutH6Q35iy8TgV0FN0SJqe0ZVHN8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EVw6HpIs3BKen2qY2gz4y5dw1JpXilfh07msZfQqJpc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FYolLla9L8EZMROEdWetozroU40Dnmwwx2jIMrr7c1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8M6k4QIutSIj6CM41vvkQtuFsaGrjoR9SZJVSLbfGKQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9LM0VoddDNHway442MqY+Z7vohB2UHau/cddshhzf40=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "66i8Ytco4Yq/FMl6pIRZazz3CZlu8fO2OI6Pne0pvHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2a/HgX+MjZxjXtSvHgF1yEpHMJBkl8Caee8XrJtn0WM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "frhBM662c4ZVG7mWP8K/HhRjd01lydW/cPcHnDjifqc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6k1T7Q1t668PBqv6fwpVnT1HWh7Am5LtbKvwPJKcpGU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UlJ5Edfusp8S/Pyhw6KTglIejmbr1HO0zUeHn/qFETA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jsxsB+1ECB3assUdoC333do9tYH+LglHmVSJHy4N8Hg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2nzIQxGYF7j3bGsIesECEOqhObKs/9ywknPHeJ3yges=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xJYKtuWrX90JrJVoYtnwP7Ce59XQGFYoalxpNfBXEH0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NLI5lriBTleGCELcHBtNnmnvwSRkHHaLOX4cKboMgTw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hUOQV0RmE5aJdJww1AR9rirJG4zOYPo+6cCkgn/BGvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "h4G2Of76AgxcUziBwCyH+ayMOpdBWzg4yFrTfehSC2c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VuamM75RzGfQpj2/Y1jSVuQLrhy6OAwlZxjuQLB/9Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kn9+hLq7hvw02xr9vrplOCDXKBTuFhfbX7d5v/l85Pg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fAiGqKyLZpGngBYFbtYUYt8LUrJ49vYafiboifTDjxs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BxRILymgfVJCczqjUIWXcfrfSgrrYkxTM5VTg0HkZLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CrFY/PzfPU2zsFkGLu/dI6mEeizZzCR+uYgjZBAHro0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AEbrIuwvXLTtYgMjOqnGQ8y8axUn5Ukrn7UZRSyfQVw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ouWeVH3PEFg+dKWlXc6BmqirJOaVWjJbMzZbCsce4dA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+hd6xFB+EG+kVP7WH4uMd1CLaWMnt5xJRaY/Guuga9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zmpGalfAOL3gmcUMJYcLYIRT/2VDO/1Dw4KdYZoNcng=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2PbHAoM/46J2UIZ/vyksKzmVVfxA7YUyIxWeL/N/vBk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7fD9x+zk5MVFesb59Klqiwwmve7P5ON/5COURXj5smE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tlrNQ4jaq051iaWonuv1sSrYhKkL1LtNZuHsvATha3s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fBodm28iClNpvlRyVq0dOdXQ08S7/N3aDwid+PdWvRo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "O+/nnRqT3Zv7yMMGug8GhKHaWy6u7BfRGtZoj0sdN1c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5AZZ/RTMY4Photnm/cpXZr/HnFRi3eljacMsipkJLHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oFVyo/kgoMxBIk2VE52ySSimeyU+Gr0EfCwapXnTpKA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z8v59DfcnviA0mzvnUk+URVO0UuqAWvtarEgJva/n1c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "P64GOntZ+zBJEHkigoh9FSxSO+rJTqR20z5aiGQ9an4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xMbSuDPfWuO/Dm7wuVl06GnzG9uzTlJJX9vFy7boGlY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kXPB19mRClxdH2UsHwlttS6lLU2uHvzuZgZz7kC45jU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NDVjVYXAw4k0w4tFzvs7QDq39aaU3HQor4I2XMKKnCk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uKw/+ErVfpTO1dGUfd3T/eWfZW3nUxXCdBGdjvHtZ88=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "av0uxEzWkizYWm0QUM/MN1hLibnxPvCWJKwjOV4yVQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ERwUC47dvgOBzIsEESMIioLYbFOxOe8PtJTnmDkKuHM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2gseKlG5Le12fS/vj4eaED4lturF16kAgJ1TpW3HxEE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7Cvg0Y3j/5i2F1TeXxlMmU7xwif5dCmwkZAOrVC5K2Y=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-InsertFind.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-InsertFind.json
new file mode 100644
index 00000000000..cea03e23fe8
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-InsertFind.json
@@ -0,0 +1,1899 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Decimal. Insert and Find.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "default",
+ "filter": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "find"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimal": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0l86Ag5OszXpa78SlOUV3K9nff5iC1p0mRXtLg9M1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hn6yuxFHodeyu7ISlhYrbSf9pTiH4TDEvbYLWjTwFO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zdf4y2etKBuIpkEU1zMwoCkCsdisfXZCh8QPamm+drY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rOQ9oMdiK5xxGH+jPzOvwVqdGGnF3+HkJXxn81s6hp4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "61aKKsE3+BJHHWYvs3xSIBvlRmKswmaOo5rygQJguUg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KuDb/GIzqDM8wv7m7m8AECiWJbae5EKKtJRugZx7kR0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Q+t8t2TmNUiCIorVr9F3AlVnX+Mpt2ZYvN+s8UGict8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJRZIpKxUgHyL83kW8cvfjkxN3z6WoNnUg+SQw+LK+k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnUsYjip8SvW0+m9mR5WWTkpK+p6uwJ6yBUAlBnFKMk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PArHlz+yPRYDycAP/PgnI/AkP8Wgmfg++Vf4UG1Bf0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wnIh53Q3jeK8jEBe1n8kJLa89/H0BxO26ZU8SRIAs9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4F8U59gzBLGhq58PEWQk2nch+R0Va7eTUoxMneReUIA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ihKagIW3uT1dm22ROr/g5QaCpxZVj2+Fs/YSdM2Noco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EJtUOOwjkrPUi9mavYAi+Gom9Y2DuFll7aDwo4mq0M0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dIkr8dbaVRQFskAVT6B286BbcBBt1pZPEOcTZqk4ZcI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aYVAcZYkH/Tieoa1XOjE/zCy5AJcVTHjS0NG2QB7muA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sBidL6y8TenseetpioIAAtn0lK/7C8MoW4JXpVYi3z8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Dd2klU/t4R86c2WJcJDAd57k/N7OjvYSO5Vf8KH8sw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I3jZ92WEVmZmgaIkLbuWhBxl7EM6bEjiEttgBJunArA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aGHoQMlgJoGvArjfIbc3nnkoc8SWBxcrN7hSmjMRzos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bpiWPnF/KVBQr5F6MEwc5ZZayzIRvQOLDAm4ntwOi8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI7QVKbE6avWgDD9h4QKyFlnTxFCwd2iLySKakxNR/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XGsge0CnoaXgE3rcpKm8AEeku5QVfokS3kcI+JKV1lk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JQxlryW2Q5WOwfrjAnaZxDvC83Dg6sjRVP5zegf2WiM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YFuHKJOfoqp1iGVxoFjx7bLYgVdsN4GuUFxEgO9HJ5s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z6vUdiCR18ylKomf08uxcQHeRtmyav7/Ecvzz4av3k4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SPGo1Ib5AiP/tSllL7Z5PAypvnKdwJLzt8imfIMSEJQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m94Nh6PFFQFLIib9Cu5LAKavhXnagSHG6F5EF8lD96I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pfEkQI98mB+gm1+JbmVurPAODMFPJ4E8DnqfVyUWbSo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DNj3OVRLbr43s0vd+rgWghOL3FqeO/60npdojC8Ry/M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kAYIQrjHVu49W8FTxyxJeiLVRWWjC9fPcBn+Hx1F+Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aCSO7UVOpoQvu/iridarxkxV1SVxU1i9HVSYXUAeXk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Gh6hTP/yj1IKlXQ+Q69KTfMlGZjEcXoRLGbQHNFo/1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/gDgIFQ4tAlJk3GN48IS5Qa5IPmErwGk8CHxAbp6gs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PICyimwPjxpusyKxNssOOwUotAUbygpyEtORsVGXT8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4lu+cBHyAUvuxC6JUNyHLzHsCogGSWFFnUCkDwfQdgI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pSndkmoNUJwXjgkbkgOrT5f9nSvuoMEZOkwAN9ElRaE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tyW+D4i26QihNM5MuBM+wnt5AdWGSJaJ4X5ydc9iWTU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9Syjr8RoxUgPKr+O5rsCu07AvcebA4P8IVKyS1NVLWc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "67tPfDYnK2tmrioI51fOBG0ygajcV0pLo5+Zm/rEW7U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y0EiPRxYTuS1eVTIaPQUQBBxwkyxNckbePvKgChwd0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NWd+2veAaeXQgR3vCvzlI4R1WW67D5YsVLdoXfdb8qg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PY5RQqKQsL2GqBBSPNOEVpojNFRX/NijCghIpxD6CZk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lcvwTyEjFlssCJtdjRpdN6oY+C7bxZY+WA+QAqzj9zg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWE7XRNylvTwO/9Fv56dNqUaQWMmESNS/GNIwgBaEI0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ijwlrUeS8nRYqK1F8kiCYF0mNDolEZS+/lJO1Lg93C8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8KzV+qYGYuIjoNj8eEpnTuHrMYuhzphl80rS6wrODuU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wDyTLjSEFF895hSQsHvmoEQVS6KIkZOtq1c9dVogm9I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SGrtPuMYCjUrfKF0Pq/thdaQzmGBMUvlwN3ORIu9tHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KySHON3hIoUk4xWcwTqk6IL0kgjzjxgMBObVIkCGvk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hBIdS9j0XJPeT4ot73ngELkpUoSixvRBvdOL9z48jY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Tx6um0q9HjS5ZvlFhvukpI6ORnyrXMWVW1OoxvgqII0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zFKlyfX5H81+d4A4J3FKn4T5JfG+OWtR06ddyX4Mxas=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cGgCDuPV7MeMMYEDpgOupqyNP4BQ4H7rBnd2QygumgM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IPaUoy98v11EoglTpJ4kBlEawoZ8y7BPwzjLYBpkvHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Pfo4Am6tOWAyZNn8G9W5HWWGC3ZWmX0igI/RRB870Ro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fnTSjd7bC1Udoq6iM7UDnHAC/lsIXSHp/Gy332qw+/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fApBgVRrTDyEumkeWs5p3ag9KB48SbU4Si0dl7Ns9rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QxudfBItgoCnUj5NXVnSmWH3HK76YtKkMmzn4lyyUYY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sSOvwhKa29Wq94bZ5jGIiJQGbG1uBrKSBfOYBz/oZeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FdaMgwwJ0NKsqmPZLC5oE+/0D74Dfpvig3LaI5yW5Fs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sRWBy12IERN43BSZIrnBfC9+zFBUdvjTlkqIH81NGt4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/4tIRpxKhoOwnXAiFn1Z7Xmric4USOIfKvTYQXk3QTc=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimal": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RGTjNVEsNJb+DG7DpPOam8rQWD5HZAMpRyiTQaw7tk8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I93Md7QNPGmEEGYU1+VVCqBPBEvXdqHPtTJtMOn06Yk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "GecBFQ1PemlECWZWCl7f74vmsL6eB6mzQ9n6tK6FYfs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QpjhZl+O1ORifgtCZuWAdcP6OKL7IZ2cA46v8FJcV28=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RlQWwhU+uVv0a+9IB5cUkEfvHBvOw3B1Sx6WfPWMqes=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubb81XTC7U+4tcNzf1oYvOY6gR5hC2Izqx54f4GuJ0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6M4Q5NMQ9TqNnjzGOxIkiUIY8TEL0I3XD1QnhefQUqU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BtInzk9t2FFMCEY6AQ7zN8jwrrZEs2irSv6q0Q4NaIw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vxXfETu9cuBIpRBo3jUUU04mJIH/aAhLX8K6VI5Xv0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXPCdS+q23zi1bkPnaVG2j0PsVtxdeSLJ//h6J1x8RU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KY3KkfBAsN2l80wbpj41G0gwBR5KmmFnZcagg7D3ENk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI8NFAxXCX4VOnY5X73K6KI/Yspd3aR94KV39MhJlAw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nFxH0UC3mATKA6Vboz+QX/hAjj19kF/SH6H5Cne7qC0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q8hYqIYaIi7nOdG/7qQZYnz8Bsacfi66M1nVku4SH08=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4saA92R4arp4anvD9xFtze+sNcQqTEhPHyl1h70A8NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DbIziOBRRyeQS6RtBR09E37LV+CTKrEjGoRMLSpG6eE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Fv80Plp/7w2gnVqrwawLd6qhJ10G4NCDm3re67cNq4Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "T/T2oiQCBBES4YN7EodzPRdabZSFlYIClHBym+bQUZE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZQgHD3l46Ujqtbnj1VbbeM29C9wJzOhz+yZ/7XdSrxk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ltlFKzWvyZvHxDFOYDd/XXJ6kUiJj0ln2HTCEz2o4Z4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "flW8A7bltC1u8bzx0WJtxosGJdOVsJFfbx33jxnpFGg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SXO+92QbMKwUSG2t27ciunV1c3VvFkUuDmSczpRe008=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+KioGs1GM+xRBzFE67ePTWj04KMSE5/Y6qUF7nJ5kvU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L3xNVbh6YH+RzqABN+5Jgb7T234Efpn766DmUvxIxgg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hPF+60mBYPjh21dEmPlBhKgyc9S2qLtTkypYvnqP2Fc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EletRsETy2HcjaPIm2c8CkT7ch/P3pJJDC8hasepcSU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "r5bMXUaNKqLPxZ+TG9HYTG4aSDgcpim27rN8rQFkM0w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Q7Erdr8+/S0wUEDDIqlS5XjBVWvhZY65K0uUDb6+Ns=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xEcnhXy35hbXNVBPOOt3TUHbxvKfQ48KjA9b6/rbMqQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "T8bEpiQNgsEudXvyKE9SZlSvbpV/LUaslsdqgSFltyo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hIoiaF2YjnxDbODfhFEB+JGZ5nf8suD3Shck5bwQ3N0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qnA6qzejeRJ0rsZaZ0zOvKAaXyxt5lpscKQNYFZNl4k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "anAKCL2DN/le2VaP0n2ucYSEH/DaaEH/8Sa4OqTZsRA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JCZlBJaFm618oWYSnT9Jr1MtwFVw4BZjOzO+5yWgR90=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yxyk4n9762WzcDVGnTn4jCqUnSMIVCrLDIjCX1QVj34=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fDI6fdKvDJwim5/CQwWZEzcrXE3LHgy7FTtffcC7tXE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Vex+gcz5T+WkzsVZQrkqUR2ryyZbnaOGuWpYvjN0zCw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8TLEXz+Gbbp6llHpZXVjLsdlYY9f6hrKpHVpyfDe0RY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7fTyt5BrunypS65TfOzFW2E2qdIuT4SLeDeGlbQoJCs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8fKGrkqN0/KuSjyXgDBmRauDKrSa//JBKRWHEB9xBf4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s4codmG7uN4ss6P357jL21lazEe90M9GOK5WrOknSV0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RkSpua8XF+NUdxVDU90EbLUTTyZFX3tt3atBTroFaRk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LnTCuCDyAHK5B9KXzjtwGmWB+qergQk2OCjnIx9MI2A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cBFh0virAX4pVXf/udIGI2951i0+0aZAdJcBVGtYnT4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "G54X6myQXWZ5fw/G31en3QbdgfXzL9+hFTtJpnWMqDI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EdsiiuezcsFJFnYIyGjCOhnqMj1BOwTB5EFxN+ERUkg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dVH9MXLtk0WTwGQ3xmrhOqfropMUkDW3o6paNPGl3NU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sB3HqXKWY3pKbuEH8BTbfNIGfbY+7/ZbOc3XC+JRNNI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WHyDk62Xhqbo4/iie2aLIM4x2uuAjv6102dJSHI58oM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pNUFuHpeNRDUZ/NrtII2c6sNc9eGR1lIUlIyXKERA+0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UPa+pdCqnN0bfAptdzldQOSd01gidrDKy8KhWrpSKAI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "l+7dOAlo+HUffMqFYXL6pgUFeTbwOM9CjKQLxEoLtc4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SRnDXV/rN6C8xwMutv9E1luv3DOUio3VkgPr8Cpm7Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QcH6gl+gX7xZ7OWhUNQMbndJy0Piz49pDo6RsnLkVSA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "t+uL4DnfsI/Zll/KXWW1cOKX3Hu8WIkm3pt9efCVSAQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "myutHDctku/+Uug/nD8gRbYvmx/IovtoAAC2/fz2oHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6C+cjD0e0nSCP6cPqQYbNG7SlOd6Mfvi8hyfm7Ng+D8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zg01JSoOj9oBKT0S1ldJucXzY5AKgreS+h2xJreWTOs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7qQ80/FjodHl1m1py/Oii0/9C/xWbLdhaRXQ+kkCP10=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YwWMNH07vL6c5Nhg+MRnVByhzUunu8y0VLM9z/XvR5U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dle8bU98+fudAbc14SToZFkwvV3tcYVsjDug0NWljpc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "J+eKL1vPJmlzltvhI6Li5Fz/TJmi3Ng+ehRTcs46API=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB3XzfFygLwC3WHkj0up+VbEd25KKoce1vOpG/5bwK4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vnVnmOnL+z2pqwE+A6cVKS0Iwy4F4/2IiElJca9bUQM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+lG5r/Fpqry3BtFuvY67+RntmHAMDoLVOSGc6ZoXPb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L5MXQertqc6uj7ADe8aWKbd1sYHPCE7P1VYVg9Zc3VI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "imKONuZgopt0bhM3GMX2WVPwQYMTobuUUEdhcLfHs4c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eOkU1J1uVbiVFWBerbXsSIVcF2nqiicTkFy4x7kFHB8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gI0uDhXeoH/UatDQKEf4qo8FHzWZDhb/wuWTqbq/ID4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cOkd5Aa3btYhtojE/smsF/PJnULqQ4NNqTkU6KXTFmo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AWNJMs1MTe294oFipp8Y6P0CjpkZ4qCZoClQF3XcHq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6gJtlzXOFhGYrVbTuRMmvMlDTwXdNtR9aGBlHZPwIMw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LEmwVGA/xsEG7UrcOoYLFu6KCXgijzFznenknuDacm8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mIRFPTXRrGaPtp/Ydij2jgkRe4uoUvAKxW2d8b9zYL0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "B+Uv2u48WALOO0L311z+eryjYQzKJVMfdHMZPhOAFmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "INXXp0wDyVCq+NtfIrrC2ciETmyW/dWB/48/u4yLEZ4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "se7DGo8XrlrQDLEcco1tZrQt9kDe+0RTyl2bw/quG4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vr0m2+Zk9lbN6UgWCyn8xJWJOokU3IDYab5U5q1+CgQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XI+eJ8Gy2JktG1gICgoj1qpsfy1tKmH0kglWbaQH6DA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A+UCuNnuAUqnQzspA6TVqUPRmtZmpSex5HFw7THRxs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xaH2Ehfljd19uo0Fvb3iwkdaiWEVQd2YPoitgEPkhSM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S/iZBJGcc8+qZxyMtab65MMBoSglybwk3x58Nb86gnY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "w14ZE5qqY5YgkS4Zcs9YNbrQbY1XfGOOHNn9bOYnFVQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0MhGd/jEF1vjkKGp+ZMn9SjLK54jkp9W4Hg+Sp/oxaI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "92QZ73e/NRTYgCm4aifaKth6aAsKnLLccBc0zx/qUTY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WOjzemCgFJOiGIp81RSVh/tFlzSTj9eFWcBnsiv2Ycs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DrsP9CmfKPjw5yLL8bnSeAxfNzAwlb+Z8OqCiKgBY7o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lMogqg8veBv6mri3/drMe9afJiKMvevkmGcw9BedfLo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TxqwNcY8Tg2MPpNdkPBwvfpuTttSYRHU26DGECKYQ9o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "l0u1b4b4vYACWIwfnB7PZac4oDEgjQZCzHruNPTgAIY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "iVSGQ+cCfhbWIrY/v/WBORK92elu9gfRKyGhr6r/k00=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yK1forG50diEXte8ECzjfpHeYsPyuQ/dgxbxn/nzY5k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gIfTLCD3VwnOwkC0zPXWTqaITxX6ZplA69PO2a6zolc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "O/Zxlgh3WqpzJ7+Sd8XWMVID4/GXJUUWaSqfgDUi3b0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZQ6yv368zwahUqSUYH/StL0Qgz/TwS1CzlMjVDvCciI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m2rPEYkjwyiKdonMrKlcF7hya4lFOAUwEePJ3SgrNx8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mq0yl5iVKlq71bT/dT/fXOWf2n90bTnXFnOdGDN0JOc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6qDGMXipPLC2O6EAAMjO2F9xx4rdqZso4IkPpH2304U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jvQHRQQa2RIszE2LX2Hv2LbRhYawJ6qmtRt8HZzFQXg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ovJXQrkZlpeHRciKyE/WWNm5O389gRgzx1W+Dw596X4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "a4kgRNvYctGYqyQv9qScL/WkljTYVylJ9pE9KDULlxU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qV4Q48vPiCJMTjljotzYKI/zfExWpkKOSHGcAjGyDig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jtI7zbBF+QW/aYYTkn90zzyHLXLgmy7l1bzgMb2oqic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q0KmJl9txPdn962UNvnfe6UFhdk9YaFZuTm33F+csso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ULNdEqeZJgtmNOhN/Y9INzsE9AnxWYwOMn+pIbRXIFs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "R4oz9+wkdjpKe5tE1jpG7IURAnfvS5fLP4LrD5cZfTE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qG5Z7VhwSu/HT/YFTgDzyAAzJKq51xPw2HeEV5btYC4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OM/1DmIIZ5Qyhtq8TGkHTBEMVKjAnKRZMRXYtTG8ctc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2R5vZbljLXnDFA99YfGuRB7pAdPJVKsT25zLNMC0fUk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OMbavF2EmdAz1fHkLV3ctFEUDfriKhoT2gidwHZ9z1o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MWT4Zrw3/vVvTYMa1Is5Pjr3wEwnBfnEAPPUAHKQhNU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tBkRPfG9yxfKocQx5pAJX0oEHKPL0Tgtr+0UYe09InE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lqxpnDR/H0YgH7RcfKoNoaaRhe1SIazIeMbQ1fu9y3Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "utT1UdR22PWOTrOkZauztX613lAplV4eh/ejTRb7ZSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S+Y2yFyKi/a6FXhih4yGo29X8I8OT6/zwEoX6NMKT4o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QSjVppg29x6oS5yBg8OFjrFt0tuTpWCuKxfIy0k8YnE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y3r6/Xsfvsl3HksXlVYkJgHUqpQGfICxg3x9f8Zw1qM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BSltHzEwDjFN4du9rDHAPvl22atlcTioEtt+gC5L1tk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0arGXjSN0006UnXbrWsGqhvBair569DeFDUME3Df3rA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s/DumaMad08S+PBUUcrS+v42K0z8HgcdiQtrFAEu2Qs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EzJ8Y8N0OQBTlnvrK82PdevDNZZO4E6CNgYVu8Cj6Ks=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VA4vr8jBPI5QdiPrULzzZjBMIUbG3V7Slg5zm0bFcKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YAOvEB2ZLtq9LQiFViBHWaxxWVVonC2rNYj9tN9s3L0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hgaHMo9aAGS+nBwvqnTjZO+YkiQPY1c1XcIYeaYKHyI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YvaoLt3ZpH0atB0tNzwMjpoxRYJXl0DqSjisMJiGVBE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EMmW6CptFsiLoPOi5/uAJQ2FmeLg6mCpuVLLrRWk7Mc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1jQsNMarSnarlYmXEuoFokeBMg/090qUD9wqo1Zn8Gs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hupXNKhRpJxpyDAAP1TgJ5JMZh9lhbMk6s7D7dMS3C8=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-InsertFind.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-InsertFind.yml
new file mode 100644
index 00000000000..48d44264a84
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-InsertFind.yml
@@ -0,0 +1,1666 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ # Tests for Decimal (without precision) must only run against a replica set. Decimal (without precision) queries are expected to take a long time and may exceed the default mongos timeout.
+ topology: [ "replicaset" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimal', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Decimal. Insert and Find."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimal: { $numberDecimal: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimal: { $numberDecimal: "1" } }
+ - name: find
+ arguments:
+ filter: { encryptedDecimal: { $gt: { $numberDecimal: "0" } } }
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDecimal": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDecimal": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ find: *collection_name
+ filter:
+ "encryptedDecimal": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: find
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimal": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0l86Ag5OszXpa78SlOUV3K9nff5iC1p0mRXtLg9M1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hn6yuxFHodeyu7ISlhYrbSf9pTiH4TDEvbYLWjTwFO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zdf4y2etKBuIpkEU1zMwoCkCsdisfXZCh8QPamm+drY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rOQ9oMdiK5xxGH+jPzOvwVqdGGnF3+HkJXxn81s6hp4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "61aKKsE3+BJHHWYvs3xSIBvlRmKswmaOo5rygQJguUg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KuDb/GIzqDM8wv7m7m8AECiWJbae5EKKtJRugZx7kR0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Q+t8t2TmNUiCIorVr9F3AlVnX+Mpt2ZYvN+s8UGict8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJRZIpKxUgHyL83kW8cvfjkxN3z6WoNnUg+SQw+LK+k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnUsYjip8SvW0+m9mR5WWTkpK+p6uwJ6yBUAlBnFKMk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PArHlz+yPRYDycAP/PgnI/AkP8Wgmfg++Vf4UG1Bf0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wnIh53Q3jeK8jEBe1n8kJLa89/H0BxO26ZU8SRIAs9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4F8U59gzBLGhq58PEWQk2nch+R0Va7eTUoxMneReUIA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ihKagIW3uT1dm22ROr/g5QaCpxZVj2+Fs/YSdM2Noco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EJtUOOwjkrPUi9mavYAi+Gom9Y2DuFll7aDwo4mq0M0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dIkr8dbaVRQFskAVT6B286BbcBBt1pZPEOcTZqk4ZcI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aYVAcZYkH/Tieoa1XOjE/zCy5AJcVTHjS0NG2QB7muA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sBidL6y8TenseetpioIAAtn0lK/7C8MoW4JXpVYi3z8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Dd2klU/t4R86c2WJcJDAd57k/N7OjvYSO5Vf8KH8sw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I3jZ92WEVmZmgaIkLbuWhBxl7EM6bEjiEttgBJunArA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aGHoQMlgJoGvArjfIbc3nnkoc8SWBxcrN7hSmjMRzos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bpiWPnF/KVBQr5F6MEwc5ZZayzIRvQOLDAm4ntwOi8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI7QVKbE6avWgDD9h4QKyFlnTxFCwd2iLySKakxNR/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XGsge0CnoaXgE3rcpKm8AEeku5QVfokS3kcI+JKV1lk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JQxlryW2Q5WOwfrjAnaZxDvC83Dg6sjRVP5zegf2WiM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YFuHKJOfoqp1iGVxoFjx7bLYgVdsN4GuUFxEgO9HJ5s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z6vUdiCR18ylKomf08uxcQHeRtmyav7/Ecvzz4av3k4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SPGo1Ib5AiP/tSllL7Z5PAypvnKdwJLzt8imfIMSEJQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m94Nh6PFFQFLIib9Cu5LAKavhXnagSHG6F5EF8lD96I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pfEkQI98mB+gm1+JbmVurPAODMFPJ4E8DnqfVyUWbSo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DNj3OVRLbr43s0vd+rgWghOL3FqeO/60npdojC8Ry/M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kAYIQrjHVu49W8FTxyxJeiLVRWWjC9fPcBn+Hx1F+Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aCSO7UVOpoQvu/iridarxkxV1SVxU1i9HVSYXUAeXk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Gh6hTP/yj1IKlXQ+Q69KTfMlGZjEcXoRLGbQHNFo/1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/gDgIFQ4tAlJk3GN48IS5Qa5IPmErwGk8CHxAbp6gs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PICyimwPjxpusyKxNssOOwUotAUbygpyEtORsVGXT8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4lu+cBHyAUvuxC6JUNyHLzHsCogGSWFFnUCkDwfQdgI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pSndkmoNUJwXjgkbkgOrT5f9nSvuoMEZOkwAN9ElRaE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tyW+D4i26QihNM5MuBM+wnt5AdWGSJaJ4X5ydc9iWTU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9Syjr8RoxUgPKr+O5rsCu07AvcebA4P8IVKyS1NVLWc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "67tPfDYnK2tmrioI51fOBG0ygajcV0pLo5+Zm/rEW7U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y0EiPRxYTuS1eVTIaPQUQBBxwkyxNckbePvKgChwd0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NWd+2veAaeXQgR3vCvzlI4R1WW67D5YsVLdoXfdb8qg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PY5RQqKQsL2GqBBSPNOEVpojNFRX/NijCghIpxD6CZk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lcvwTyEjFlssCJtdjRpdN6oY+C7bxZY+WA+QAqzj9zg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWE7XRNylvTwO/9Fv56dNqUaQWMmESNS/GNIwgBaEI0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ijwlrUeS8nRYqK1F8kiCYF0mNDolEZS+/lJO1Lg93C8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8KzV+qYGYuIjoNj8eEpnTuHrMYuhzphl80rS6wrODuU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wDyTLjSEFF895hSQsHvmoEQVS6KIkZOtq1c9dVogm9I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SGrtPuMYCjUrfKF0Pq/thdaQzmGBMUvlwN3ORIu9tHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KySHON3hIoUk4xWcwTqk6IL0kgjzjxgMBObVIkCGvk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hBIdS9j0XJPeT4ot73ngELkpUoSixvRBvdOL9z48jY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Tx6um0q9HjS5ZvlFhvukpI6ORnyrXMWVW1OoxvgqII0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zFKlyfX5H81+d4A4J3FKn4T5JfG+OWtR06ddyX4Mxas=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cGgCDuPV7MeMMYEDpgOupqyNP4BQ4H7rBnd2QygumgM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IPaUoy98v11EoglTpJ4kBlEawoZ8y7BPwzjLYBpkvHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Pfo4Am6tOWAyZNn8G9W5HWWGC3ZWmX0igI/RRB870Ro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fnTSjd7bC1Udoq6iM7UDnHAC/lsIXSHp/Gy332qw+/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fApBgVRrTDyEumkeWs5p3ag9KB48SbU4Si0dl7Ns9rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QxudfBItgoCnUj5NXVnSmWH3HK76YtKkMmzn4lyyUYY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sSOvwhKa29Wq94bZ5jGIiJQGbG1uBrKSBfOYBz/oZeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FdaMgwwJ0NKsqmPZLC5oE+/0D74Dfpvig3LaI5yW5Fs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sRWBy12IERN43BSZIrnBfC9+zFBUdvjTlkqIH81NGt4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/4tIRpxKhoOwnXAiFn1Z7Xmric4USOIfKvTYQXk3QTc=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimal": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RGTjNVEsNJb+DG7DpPOam8rQWD5HZAMpRyiTQaw7tk8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I93Md7QNPGmEEGYU1+VVCqBPBEvXdqHPtTJtMOn06Yk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "GecBFQ1PemlECWZWCl7f74vmsL6eB6mzQ9n6tK6FYfs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QpjhZl+O1ORifgtCZuWAdcP6OKL7IZ2cA46v8FJcV28=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RlQWwhU+uVv0a+9IB5cUkEfvHBvOw3B1Sx6WfPWMqes=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubb81XTC7U+4tcNzf1oYvOY6gR5hC2Izqx54f4GuJ0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6M4Q5NMQ9TqNnjzGOxIkiUIY8TEL0I3XD1QnhefQUqU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BtInzk9t2FFMCEY6AQ7zN8jwrrZEs2irSv6q0Q4NaIw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vxXfETu9cuBIpRBo3jUUU04mJIH/aAhLX8K6VI5Xv0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXPCdS+q23zi1bkPnaVG2j0PsVtxdeSLJ//h6J1x8RU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KY3KkfBAsN2l80wbpj41G0gwBR5KmmFnZcagg7D3ENk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI8NFAxXCX4VOnY5X73K6KI/Yspd3aR94KV39MhJlAw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nFxH0UC3mATKA6Vboz+QX/hAjj19kF/SH6H5Cne7qC0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q8hYqIYaIi7nOdG/7qQZYnz8Bsacfi66M1nVku4SH08=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4saA92R4arp4anvD9xFtze+sNcQqTEhPHyl1h70A8NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DbIziOBRRyeQS6RtBR09E37LV+CTKrEjGoRMLSpG6eE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Fv80Plp/7w2gnVqrwawLd6qhJ10G4NCDm3re67cNq4Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "T/T2oiQCBBES4YN7EodzPRdabZSFlYIClHBym+bQUZE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZQgHD3l46Ujqtbnj1VbbeM29C9wJzOhz+yZ/7XdSrxk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ltlFKzWvyZvHxDFOYDd/XXJ6kUiJj0ln2HTCEz2o4Z4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "flW8A7bltC1u8bzx0WJtxosGJdOVsJFfbx33jxnpFGg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SXO+92QbMKwUSG2t27ciunV1c3VvFkUuDmSczpRe008=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+KioGs1GM+xRBzFE67ePTWj04KMSE5/Y6qUF7nJ5kvU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L3xNVbh6YH+RzqABN+5Jgb7T234Efpn766DmUvxIxgg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hPF+60mBYPjh21dEmPlBhKgyc9S2qLtTkypYvnqP2Fc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EletRsETy2HcjaPIm2c8CkT7ch/P3pJJDC8hasepcSU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "r5bMXUaNKqLPxZ+TG9HYTG4aSDgcpim27rN8rQFkM0w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Q7Erdr8+/S0wUEDDIqlS5XjBVWvhZY65K0uUDb6+Ns=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xEcnhXy35hbXNVBPOOt3TUHbxvKfQ48KjA9b6/rbMqQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "T8bEpiQNgsEudXvyKE9SZlSvbpV/LUaslsdqgSFltyo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hIoiaF2YjnxDbODfhFEB+JGZ5nf8suD3Shck5bwQ3N0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qnA6qzejeRJ0rsZaZ0zOvKAaXyxt5lpscKQNYFZNl4k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "anAKCL2DN/le2VaP0n2ucYSEH/DaaEH/8Sa4OqTZsRA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JCZlBJaFm618oWYSnT9Jr1MtwFVw4BZjOzO+5yWgR90=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yxyk4n9762WzcDVGnTn4jCqUnSMIVCrLDIjCX1QVj34=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fDI6fdKvDJwim5/CQwWZEzcrXE3LHgy7FTtffcC7tXE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Vex+gcz5T+WkzsVZQrkqUR2ryyZbnaOGuWpYvjN0zCw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8TLEXz+Gbbp6llHpZXVjLsdlYY9f6hrKpHVpyfDe0RY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7fTyt5BrunypS65TfOzFW2E2qdIuT4SLeDeGlbQoJCs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8fKGrkqN0/KuSjyXgDBmRauDKrSa//JBKRWHEB9xBf4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s4codmG7uN4ss6P357jL21lazEe90M9GOK5WrOknSV0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RkSpua8XF+NUdxVDU90EbLUTTyZFX3tt3atBTroFaRk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LnTCuCDyAHK5B9KXzjtwGmWB+qergQk2OCjnIx9MI2A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cBFh0virAX4pVXf/udIGI2951i0+0aZAdJcBVGtYnT4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "G54X6myQXWZ5fw/G31en3QbdgfXzL9+hFTtJpnWMqDI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EdsiiuezcsFJFnYIyGjCOhnqMj1BOwTB5EFxN+ERUkg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dVH9MXLtk0WTwGQ3xmrhOqfropMUkDW3o6paNPGl3NU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sB3HqXKWY3pKbuEH8BTbfNIGfbY+7/ZbOc3XC+JRNNI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WHyDk62Xhqbo4/iie2aLIM4x2uuAjv6102dJSHI58oM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pNUFuHpeNRDUZ/NrtII2c6sNc9eGR1lIUlIyXKERA+0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UPa+pdCqnN0bfAptdzldQOSd01gidrDKy8KhWrpSKAI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "l+7dOAlo+HUffMqFYXL6pgUFeTbwOM9CjKQLxEoLtc4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SRnDXV/rN6C8xwMutv9E1luv3DOUio3VkgPr8Cpm7Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QcH6gl+gX7xZ7OWhUNQMbndJy0Piz49pDo6RsnLkVSA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "t+uL4DnfsI/Zll/KXWW1cOKX3Hu8WIkm3pt9efCVSAQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "myutHDctku/+Uug/nD8gRbYvmx/IovtoAAC2/fz2oHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6C+cjD0e0nSCP6cPqQYbNG7SlOd6Mfvi8hyfm7Ng+D8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zg01JSoOj9oBKT0S1ldJucXzY5AKgreS+h2xJreWTOs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7qQ80/FjodHl1m1py/Oii0/9C/xWbLdhaRXQ+kkCP10=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YwWMNH07vL6c5Nhg+MRnVByhzUunu8y0VLM9z/XvR5U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dle8bU98+fudAbc14SToZFkwvV3tcYVsjDug0NWljpc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "J+eKL1vPJmlzltvhI6Li5Fz/TJmi3Ng+ehRTcs46API=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB3XzfFygLwC3WHkj0up+VbEd25KKoce1vOpG/5bwK4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vnVnmOnL+z2pqwE+A6cVKS0Iwy4F4/2IiElJca9bUQM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+lG5r/Fpqry3BtFuvY67+RntmHAMDoLVOSGc6ZoXPb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L5MXQertqc6uj7ADe8aWKbd1sYHPCE7P1VYVg9Zc3VI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "imKONuZgopt0bhM3GMX2WVPwQYMTobuUUEdhcLfHs4c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eOkU1J1uVbiVFWBerbXsSIVcF2nqiicTkFy4x7kFHB8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gI0uDhXeoH/UatDQKEf4qo8FHzWZDhb/wuWTqbq/ID4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cOkd5Aa3btYhtojE/smsF/PJnULqQ4NNqTkU6KXTFmo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AWNJMs1MTe294oFipp8Y6P0CjpkZ4qCZoClQF3XcHq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6gJtlzXOFhGYrVbTuRMmvMlDTwXdNtR9aGBlHZPwIMw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LEmwVGA/xsEG7UrcOoYLFu6KCXgijzFznenknuDacm8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mIRFPTXRrGaPtp/Ydij2jgkRe4uoUvAKxW2d8b9zYL0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "B+Uv2u48WALOO0L311z+eryjYQzKJVMfdHMZPhOAFmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "INXXp0wDyVCq+NtfIrrC2ciETmyW/dWB/48/u4yLEZ4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "se7DGo8XrlrQDLEcco1tZrQt9kDe+0RTyl2bw/quG4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vr0m2+Zk9lbN6UgWCyn8xJWJOokU3IDYab5U5q1+CgQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XI+eJ8Gy2JktG1gICgoj1qpsfy1tKmH0kglWbaQH6DA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A+UCuNnuAUqnQzspA6TVqUPRmtZmpSex5HFw7THRxs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xaH2Ehfljd19uo0Fvb3iwkdaiWEVQd2YPoitgEPkhSM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S/iZBJGcc8+qZxyMtab65MMBoSglybwk3x58Nb86gnY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "w14ZE5qqY5YgkS4Zcs9YNbrQbY1XfGOOHNn9bOYnFVQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0MhGd/jEF1vjkKGp+ZMn9SjLK54jkp9W4Hg+Sp/oxaI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "92QZ73e/NRTYgCm4aifaKth6aAsKnLLccBc0zx/qUTY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WOjzemCgFJOiGIp81RSVh/tFlzSTj9eFWcBnsiv2Ycs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DrsP9CmfKPjw5yLL8bnSeAxfNzAwlb+Z8OqCiKgBY7o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lMogqg8veBv6mri3/drMe9afJiKMvevkmGcw9BedfLo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TxqwNcY8Tg2MPpNdkPBwvfpuTttSYRHU26DGECKYQ9o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "l0u1b4b4vYACWIwfnB7PZac4oDEgjQZCzHruNPTgAIY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "iVSGQ+cCfhbWIrY/v/WBORK92elu9gfRKyGhr6r/k00=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yK1forG50diEXte8ECzjfpHeYsPyuQ/dgxbxn/nzY5k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gIfTLCD3VwnOwkC0zPXWTqaITxX6ZplA69PO2a6zolc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "O/Zxlgh3WqpzJ7+Sd8XWMVID4/GXJUUWaSqfgDUi3b0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZQ6yv368zwahUqSUYH/StL0Qgz/TwS1CzlMjVDvCciI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m2rPEYkjwyiKdonMrKlcF7hya4lFOAUwEePJ3SgrNx8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mq0yl5iVKlq71bT/dT/fXOWf2n90bTnXFnOdGDN0JOc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6qDGMXipPLC2O6EAAMjO2F9xx4rdqZso4IkPpH2304U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jvQHRQQa2RIszE2LX2Hv2LbRhYawJ6qmtRt8HZzFQXg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ovJXQrkZlpeHRciKyE/WWNm5O389gRgzx1W+Dw596X4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "a4kgRNvYctGYqyQv9qScL/WkljTYVylJ9pE9KDULlxU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qV4Q48vPiCJMTjljotzYKI/zfExWpkKOSHGcAjGyDig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jtI7zbBF+QW/aYYTkn90zzyHLXLgmy7l1bzgMb2oqic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q0KmJl9txPdn962UNvnfe6UFhdk9YaFZuTm33F+csso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ULNdEqeZJgtmNOhN/Y9INzsE9AnxWYwOMn+pIbRXIFs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "R4oz9+wkdjpKe5tE1jpG7IURAnfvS5fLP4LrD5cZfTE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qG5Z7VhwSu/HT/YFTgDzyAAzJKq51xPw2HeEV5btYC4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OM/1DmIIZ5Qyhtq8TGkHTBEMVKjAnKRZMRXYtTG8ctc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2R5vZbljLXnDFA99YfGuRB7pAdPJVKsT25zLNMC0fUk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OMbavF2EmdAz1fHkLV3ctFEUDfriKhoT2gidwHZ9z1o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MWT4Zrw3/vVvTYMa1Is5Pjr3wEwnBfnEAPPUAHKQhNU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tBkRPfG9yxfKocQx5pAJX0oEHKPL0Tgtr+0UYe09InE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lqxpnDR/H0YgH7RcfKoNoaaRhe1SIazIeMbQ1fu9y3Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "utT1UdR22PWOTrOkZauztX613lAplV4eh/ejTRb7ZSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S+Y2yFyKi/a6FXhih4yGo29X8I8OT6/zwEoX6NMKT4o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QSjVppg29x6oS5yBg8OFjrFt0tuTpWCuKxfIy0k8YnE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y3r6/Xsfvsl3HksXlVYkJgHUqpQGfICxg3x9f8Zw1qM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BSltHzEwDjFN4du9rDHAPvl22atlcTioEtt+gC5L1tk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0arGXjSN0006UnXbrWsGqhvBair569DeFDUME3Df3rA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s/DumaMad08S+PBUUcrS+v42K0z8HgcdiQtrFAEu2Qs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EzJ8Y8N0OQBTlnvrK82PdevDNZZO4E6CNgYVu8Cj6Ks=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VA4vr8jBPI5QdiPrULzzZjBMIUbG3V7Slg5zm0bFcKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YAOvEB2ZLtq9LQiFViBHWaxxWVVonC2rNYj9tN9s3L0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hgaHMo9aAGS+nBwvqnTjZO+YkiQPY1c1XcIYeaYKHyI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YvaoLt3ZpH0atB0tNzwMjpoxRYJXl0DqSjisMJiGVBE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EMmW6CptFsiLoPOi5/uAJQ2FmeLg6mCpuVLLrRWk7Mc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1jQsNMarSnarlYmXEuoFokeBMg/090qUD9wqo1Zn8Gs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hupXNKhRpJxpyDAAP1TgJ5JMZh9lhbMk6s7D7dMS3C8=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Update.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Update.json
new file mode 100644
index 00000000000..2f8b991cf72
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Update.json
@@ -0,0 +1,1934 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Decimal. Update.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "updateOne",
+ "arguments": {
+ "filter": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$numberDecimal": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDecimal": {
+ "$numberDecimal": "2"
+ }
+ }
+ }
+ },
+ "result": {
+ "matchedCount": 1,
+ "modifiedCount": 1,
+ "upsertedCount": 0
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command_name": "update",
+ "command": {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedDecimal": {
+ "$$type": "binData"
+ }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimal",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimal": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimal": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0l86Ag5OszXpa78SlOUV3K9nff5iC1p0mRXtLg9M1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hn6yuxFHodeyu7ISlhYrbSf9pTiH4TDEvbYLWjTwFO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zdf4y2etKBuIpkEU1zMwoCkCsdisfXZCh8QPamm+drY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rOQ9oMdiK5xxGH+jPzOvwVqdGGnF3+HkJXxn81s6hp4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "61aKKsE3+BJHHWYvs3xSIBvlRmKswmaOo5rygQJguUg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KuDb/GIzqDM8wv7m7m8AECiWJbae5EKKtJRugZx7kR0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Q+t8t2TmNUiCIorVr9F3AlVnX+Mpt2ZYvN+s8UGict8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJRZIpKxUgHyL83kW8cvfjkxN3z6WoNnUg+SQw+LK+k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnUsYjip8SvW0+m9mR5WWTkpK+p6uwJ6yBUAlBnFKMk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PArHlz+yPRYDycAP/PgnI/AkP8Wgmfg++Vf4UG1Bf0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wnIh53Q3jeK8jEBe1n8kJLa89/H0BxO26ZU8SRIAs9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4F8U59gzBLGhq58PEWQk2nch+R0Va7eTUoxMneReUIA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ihKagIW3uT1dm22ROr/g5QaCpxZVj2+Fs/YSdM2Noco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EJtUOOwjkrPUi9mavYAi+Gom9Y2DuFll7aDwo4mq0M0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dIkr8dbaVRQFskAVT6B286BbcBBt1pZPEOcTZqk4ZcI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aYVAcZYkH/Tieoa1XOjE/zCy5AJcVTHjS0NG2QB7muA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sBidL6y8TenseetpioIAAtn0lK/7C8MoW4JXpVYi3z8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Dd2klU/t4R86c2WJcJDAd57k/N7OjvYSO5Vf8KH8sw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I3jZ92WEVmZmgaIkLbuWhBxl7EM6bEjiEttgBJunArA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aGHoQMlgJoGvArjfIbc3nnkoc8SWBxcrN7hSmjMRzos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bpiWPnF/KVBQr5F6MEwc5ZZayzIRvQOLDAm4ntwOi8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI7QVKbE6avWgDD9h4QKyFlnTxFCwd2iLySKakxNR/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XGsge0CnoaXgE3rcpKm8AEeku5QVfokS3kcI+JKV1lk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JQxlryW2Q5WOwfrjAnaZxDvC83Dg6sjRVP5zegf2WiM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YFuHKJOfoqp1iGVxoFjx7bLYgVdsN4GuUFxEgO9HJ5s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z6vUdiCR18ylKomf08uxcQHeRtmyav7/Ecvzz4av3k4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SPGo1Ib5AiP/tSllL7Z5PAypvnKdwJLzt8imfIMSEJQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m94Nh6PFFQFLIib9Cu5LAKavhXnagSHG6F5EF8lD96I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pfEkQI98mB+gm1+JbmVurPAODMFPJ4E8DnqfVyUWbSo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DNj3OVRLbr43s0vd+rgWghOL3FqeO/60npdojC8Ry/M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kAYIQrjHVu49W8FTxyxJeiLVRWWjC9fPcBn+Hx1F+Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aCSO7UVOpoQvu/iridarxkxV1SVxU1i9HVSYXUAeXk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Gh6hTP/yj1IKlXQ+Q69KTfMlGZjEcXoRLGbQHNFo/1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/gDgIFQ4tAlJk3GN48IS5Qa5IPmErwGk8CHxAbp6gs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PICyimwPjxpusyKxNssOOwUotAUbygpyEtORsVGXT8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4lu+cBHyAUvuxC6JUNyHLzHsCogGSWFFnUCkDwfQdgI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pSndkmoNUJwXjgkbkgOrT5f9nSvuoMEZOkwAN9ElRaE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tyW+D4i26QihNM5MuBM+wnt5AdWGSJaJ4X5ydc9iWTU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9Syjr8RoxUgPKr+O5rsCu07AvcebA4P8IVKyS1NVLWc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "67tPfDYnK2tmrioI51fOBG0ygajcV0pLo5+Zm/rEW7U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y0EiPRxYTuS1eVTIaPQUQBBxwkyxNckbePvKgChwd0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NWd+2veAaeXQgR3vCvzlI4R1WW67D5YsVLdoXfdb8qg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PY5RQqKQsL2GqBBSPNOEVpojNFRX/NijCghIpxD6CZk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lcvwTyEjFlssCJtdjRpdN6oY+C7bxZY+WA+QAqzj9zg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWE7XRNylvTwO/9Fv56dNqUaQWMmESNS/GNIwgBaEI0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ijwlrUeS8nRYqK1F8kiCYF0mNDolEZS+/lJO1Lg93C8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8KzV+qYGYuIjoNj8eEpnTuHrMYuhzphl80rS6wrODuU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wDyTLjSEFF895hSQsHvmoEQVS6KIkZOtq1c9dVogm9I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SGrtPuMYCjUrfKF0Pq/thdaQzmGBMUvlwN3ORIu9tHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KySHON3hIoUk4xWcwTqk6IL0kgjzjxgMBObVIkCGvk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hBIdS9j0XJPeT4ot73ngELkpUoSixvRBvdOL9z48jY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Tx6um0q9HjS5ZvlFhvukpI6ORnyrXMWVW1OoxvgqII0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zFKlyfX5H81+d4A4J3FKn4T5JfG+OWtR06ddyX4Mxas=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cGgCDuPV7MeMMYEDpgOupqyNP4BQ4H7rBnd2QygumgM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IPaUoy98v11EoglTpJ4kBlEawoZ8y7BPwzjLYBpkvHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Pfo4Am6tOWAyZNn8G9W5HWWGC3ZWmX0igI/RRB870Ro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fnTSjd7bC1Udoq6iM7UDnHAC/lsIXSHp/Gy332qw+/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fApBgVRrTDyEumkeWs5p3ag9KB48SbU4Si0dl7Ns9rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QxudfBItgoCnUj5NXVnSmWH3HK76YtKkMmzn4lyyUYY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sSOvwhKa29Wq94bZ5jGIiJQGbG1uBrKSBfOYBz/oZeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FdaMgwwJ0NKsqmPZLC5oE+/0D74Dfpvig3LaI5yW5Fs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sRWBy12IERN43BSZIrnBfC9+zFBUdvjTlkqIH81NGt4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/4tIRpxKhoOwnXAiFn1Z7Xmric4USOIfKvTYQXk3QTc=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimal": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mr/laWHUijZT5VT3x2a7crb7wgd/UXOGz8jr8BVqBpM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXVD/HSbBljko0jJcaxJ1nrzs2+pchLQqYR3vywS8SU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VDCpBYsJIxTfcI6Zgf7FTmKMxUffQv+Ys8zt5dlK76I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zYDslUwOUVNwTYkETfjceH/PU3bac9X3UuQyYJ19qK0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rAOmHSz18Jx107xpbv9fYcPOmh/KPAqge0PAtuhIRnc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BFOB1OGVUen7VsOuS0g8Ti7oDsTt2Yj/k/7ta8YAdGM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2fckE5SPs0GU+akDkUEM6mm0EtcV3WDE/sQsnTtodlk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mi9+aNjuwIvaMpSHENvKzKRAmX9cYguo2mXLvOoftHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "K6TWn4VcWWkz/gkUkLmbtwkG7SNeABICmLDnoYJFlLU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z+2/cEtGU0Fq7QJFNGA/0y4aWAsw0ncG6X0LYRqwS3c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rrSIf+lgcNZFbbUkS9BmE045jRWBpcBJXHzfMVEFuzE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KlHL3Kyje1/LMIfgbCqw1SolxffJvvgsYBV5y77wxuA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hzJ1YBoETmYeCh352dBmG8d8Wse/bUcqojTWpWQlgsc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lSdcllDXx8MA+s0GULjDA1lQkcV0L8/aHtZ6dM2pZ2c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "HGr7JLTTA7ksAnlmjSIwwdBVvgr3fv46/FTdiCPYpos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mMr25v1VwOEVZ8xaNUTHJCcsYqV+kwK6RzGYilxPtJ4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "129hJbziPJzNo0IoTU3bECdge0FtaPW8dm4dyNVNwYU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "doiLJ96qoo+v7NqIAZLq6BI5axV8Id8gT5vyJ1ZZ0PM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cW/Lcul3xYmfyvI/0x/+ybN78aQmBK1XIGs1EEU09N8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1aVIwzu9N5EJV9yEES+/g6hOTH7cA2NTcLIc59cu0wU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kw5tyl7Ew0r1wFyrN1mB9FiVW2hK2BxxxUuJDNWjyjQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ADAY2YBrm6RJBDY/eLLcfNxmSJku+mefz74gH66oyco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8gkqB1LojzPrstpFG7RHYmWxXpIlPDTqWnNsXH7XDRU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TESfVQMDQjfTZmHmUeYUE2XrokJ6CcrsKx/GmypGjOw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qFM+HFVQ539S0Ouynd1fBHoemFxtU9PRxE5+Dq7Ljy4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jPiFgUZteSmOg4wf3bsEKCZzcnxmMoILsgp/GaZD+dM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YaWUgJhYgPNN7TkFK16H8SsQS226JguaVhOIQxZwQNQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x90/Qk3AgyaFsvWf2KUCu5XF3j76WFSjt/GrnG01060=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZGWybWL/xlEdMYRFCZDUoz10sywTf7U/7wufsb78lH0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8l4ganN66jIcdxfHAdYLaym/mdzUUQ8TViw3MDRySPc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c8p5XEGTqxqvRGVlR+nkxw9uUdoqDqTB0jlYQ361qMA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1ZGFLlpQBcU3zIUg8MmgWwFKVz/SaA7eSYFrfe3Hb70=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "34529174M77rHr3Ftn9r8jU4a5ztYtyVhMn1wryZSkU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YkQ4pxFWzc49MS0vZM6S8mNo4wAwo21rePBeF3C+9mI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MhOf4mYY00KKVhptOcXf0bXB7WfuuM801MRJg4vXPgc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7pbbD8ihNIYIBJ3tAUPGzHpFPpIeCTAk5L88qCB0/9w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C9Q5PoNJTQo6pmNzXEEXUEqH22//UUWY1gqILcIywec=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AqGVk1QjDNDLYWGRBX/nv9QdGR2SEgXZEhF0EWBAiSE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/sGI3VCbJUKATULJmhTayPOeVW+5MjWSvVCqS77sRbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yOtbL0ih7gsuoxVtRrACMz+4N5uo7jIR7zzmtih2Beo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uA6dkb2Iyg9Su8UNDvZzkPx33kPZtWr/CCuEY+XgzUM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1DoSFPdHIplqZk+DyWAmEPckWwXw/GdB25NLmzeEZhk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OfDVS0T3ZuIXI/LNbTp6C9UbPIWLKiMy6Wx+9tqNl+g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3PZjHXbmG6GtPz+iapKtQ3yY4PoFFgjIy+fV2xQv1YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kaoLN0BoBWsmqE7kKkJQejATmLShd8qffcAmlhsxsGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vpiw9KgQdegGmp7IJnSGX2miujRLU0xzs0ITTqbPW7c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NuXFf7xGUefYjIUTuMxNUTCfVHrF8oL0AT7dPv5Plk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8Tz53LxtfEBJ9eR+d2690kwNsqPV6XyKo2PlqZCbUrc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "e6zsOmHSyV8tyQtSX6BSwui6wK9v1xG3giY/IILJQ2w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2fedFMCxa2DzmIpfbDKGXhQg0PPwbUv6vIWdwwlvhms=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yEJKMFnWXTC8tJUfzCInzQRByNEPjHxpw4L4m8No91Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YbFuWwOiFuQyOzIJXDbOkCWC2DyrG+248TBuVCa1pXU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "w7IkwGdrguwDrar5+w0Z3va5wXyZ4VXJkDMISyRjPGo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YmJUoILTRJPhyIyWyXJTsQ6KSZHHbEpwPVup6Ldm/Ko=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FvMjcwVZJmfh6FP/yBg2wgskK+KHD8YVUY6WtrE8xbg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "h4HCtD4HyYz0nci49IVAa10Z4NJD/FHnRMV4sRX6qro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nC7BpXCmym+a0Is2kReM9cYN2M1Eh5rVo8fjms14Oiw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1qtVWaeVo649ZZZtN8gXbwLgMWGLhz8beODbvru0I7Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Ej+mC0QFyMNIiSjR939S+iGBm7dm+1xObu5IcF/OpbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UQ8LbUG3cMegbr9yKfKanAPQE1EfPkFciVDrNqZ5GHY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4iI3mXIDjnX+ralk1HhJY43mZx2uTJM7hsv9MQzTX7E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0WQCcs3rvsasgohERHHCaBM4Iy6yomS4qJ5To3/yYiw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qDCTVPoue1/DOAGNAlUstdA9Sid8MgEY4e5EzHcVHRk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9F9Mus0UnlzHb8E8ImxgXtz6SU98YXD0JqswOKw/Bzs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pctHpHKVBBcsahQ6TNh6/1V1ZrqOtKSAPtATV6BJqh0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vfR3C/4cPkVdxtNaqtF/v635ONbhTf5WbwJM6s4EXNE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ejP43xUBIex6szDcqExAFpx1IE/Ksi5ywJ84GKDFRrs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jbP4AWYd3S2f3ejmMG7dS5IbrFol48UUoT+ve3JLN6U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CiDifI7958sUjNqJUBQULeyF7x0Up3loPWvYKw9uAuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "e2dQFsiHqd2BFHNhlSxocjd+cPs4wkcUW/CnCz4KNuM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PJFckVmzBipqaEqsuP2mkjhJE4qhw36NhfQ9DcOHyEU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S3MeuJhET/B8VcfZYDR9fvX0nscDj416jdDekhmK11s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CGVHZRXpuNtQviDB2Kj03Q8uvs4w3RwTgV847R7GwPw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yUGgmgyLrxbEpDVy89XN3c2cmFpZXWWmuJ/35zVZ+Jw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "inb6Q97mL1a9onfNTT8v9wsoi/fz7KXKq3p8j90AU9c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CCyYx/4npq9xGO1lsCo8ZJhFO9/tN7DB+/DTE778rYg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LNnYw4fwbiAZu0kBdAHPEm/OFnreS+oArdB5O/l/I98=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "P006SxmUS/RjiQJVYPdMFnNo3827GIEmSzagggkg05Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oyvwY+WsnYV6UHuPki1o0ILJ2jN4uyXf9yaUNtZJyBA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "36Lk3RHWh1wmtCWC/Yj6jNIo17U5y6SofAgQjzjVxD8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vOOo8FqeHnuO9mqOYjIb4vgwIwVyXZ5Y+bY5d9tGFUM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bJiDJjwQRNxqxlGjRm5lLziFhcfTDCnQ/qU1V85qcRg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2Qgrm1n0wUELAQnpkEiIHB856yv76q8jLbpiucetcm0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5ciPOYxTK0WDwwYyfs7yiVymwtYQXDELLxmM4JLl4/o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "31dC2WUSIOKQc4jwT6PikfeYTwi80mTlh7P31T5KNQU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YluTV2Mu53EGCKLcWfHZb0BM/IPW2xJdG3vYlDMEsM4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dh/8lGo2Ek6KukSwutH6Q35iy8TgV0FN0SJqe0ZVHN8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EVw6HpIs3BKen2qY2gz4y5dw1JpXilfh07msZfQqJpc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FYolLla9L8EZMROEdWetozroU40Dnmwwx2jIMrr7c1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8M6k4QIutSIj6CM41vvkQtuFsaGrjoR9SZJVSLbfGKQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9LM0VoddDNHway442MqY+Z7vohB2UHau/cddshhzf40=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "66i8Ytco4Yq/FMl6pIRZazz3CZlu8fO2OI6Pne0pvHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2a/HgX+MjZxjXtSvHgF1yEpHMJBkl8Caee8XrJtn0WM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "frhBM662c4ZVG7mWP8K/HhRjd01lydW/cPcHnDjifqc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6k1T7Q1t668PBqv6fwpVnT1HWh7Am5LtbKvwPJKcpGU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UlJ5Edfusp8S/Pyhw6KTglIejmbr1HO0zUeHn/qFETA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jsxsB+1ECB3assUdoC333do9tYH+LglHmVSJHy4N8Hg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2nzIQxGYF7j3bGsIesECEOqhObKs/9ywknPHeJ3yges=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xJYKtuWrX90JrJVoYtnwP7Ce59XQGFYoalxpNfBXEH0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NLI5lriBTleGCELcHBtNnmnvwSRkHHaLOX4cKboMgTw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hUOQV0RmE5aJdJww1AR9rirJG4zOYPo+6cCkgn/BGvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "h4G2Of76AgxcUziBwCyH+ayMOpdBWzg4yFrTfehSC2c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VuamM75RzGfQpj2/Y1jSVuQLrhy6OAwlZxjuQLB/9Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kn9+hLq7hvw02xr9vrplOCDXKBTuFhfbX7d5v/l85Pg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fAiGqKyLZpGngBYFbtYUYt8LUrJ49vYafiboifTDjxs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BxRILymgfVJCczqjUIWXcfrfSgrrYkxTM5VTg0HkZLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CrFY/PzfPU2zsFkGLu/dI6mEeizZzCR+uYgjZBAHro0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AEbrIuwvXLTtYgMjOqnGQ8y8axUn5Ukrn7UZRSyfQVw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ouWeVH3PEFg+dKWlXc6BmqirJOaVWjJbMzZbCsce4dA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+hd6xFB+EG+kVP7WH4uMd1CLaWMnt5xJRaY/Guuga9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zmpGalfAOL3gmcUMJYcLYIRT/2VDO/1Dw4KdYZoNcng=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2PbHAoM/46J2UIZ/vyksKzmVVfxA7YUyIxWeL/N/vBk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7fD9x+zk5MVFesb59Klqiwwmve7P5ON/5COURXj5smE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tlrNQ4jaq051iaWonuv1sSrYhKkL1LtNZuHsvATha3s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fBodm28iClNpvlRyVq0dOdXQ08S7/N3aDwid+PdWvRo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "O+/nnRqT3Zv7yMMGug8GhKHaWy6u7BfRGtZoj0sdN1c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5AZZ/RTMY4Photnm/cpXZr/HnFRi3eljacMsipkJLHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oFVyo/kgoMxBIk2VE52ySSimeyU+Gr0EfCwapXnTpKA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z8v59DfcnviA0mzvnUk+URVO0UuqAWvtarEgJva/n1c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "P64GOntZ+zBJEHkigoh9FSxSO+rJTqR20z5aiGQ9an4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xMbSuDPfWuO/Dm7wuVl06GnzG9uzTlJJX9vFy7boGlY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kXPB19mRClxdH2UsHwlttS6lLU2uHvzuZgZz7kC45jU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NDVjVYXAw4k0w4tFzvs7QDq39aaU3HQor4I2XMKKnCk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uKw/+ErVfpTO1dGUfd3T/eWfZW3nUxXCdBGdjvHtZ88=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "av0uxEzWkizYWm0QUM/MN1hLibnxPvCWJKwjOV4yVQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ERwUC47dvgOBzIsEESMIioLYbFOxOe8PtJTnmDkKuHM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2gseKlG5Le12fS/vj4eaED4lturF16kAgJ1TpW3HxEE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7Cvg0Y3j/5i2F1TeXxlMmU7xwif5dCmwkZAOrVC5K2Y=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Update.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Update.yml
new file mode 100644
index 00000000000..99ed254d945
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Decimal-Update.yml
@@ -0,0 +1,1705 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ # Tests for Decimal (without precision) must only run against a replica set. Decimal (without precision) queries are expected to take a long time and may exceed the default mongos timeout.
+ topology: [ "replicaset" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimal', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Decimal. Update."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimal: { $numberDecimal: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimal: { $numberDecimal: "1" } }
+ - name: updateOne
+ arguments:
+ filter: { encryptedDecimal: { $gt: { $numberDecimal: "0" } } }
+ update: { "$set": { "encryptedDecimal": { $numberDecimal: "2" } }}
+ result:
+ matchedCount: 1
+ modifiedCount: 1
+ upsertedCount: 0
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDecimal": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDecimal": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command_name: update
+ command:
+ {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedDecimal": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedDecimal": { $$type: "binData" }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": *encrypted_fields
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimal": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimal": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rbf3AeBEv4wWFAKknqDxRW5cLNkFvbIs6iJjc6LShQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0l86Ag5OszXpa78SlOUV3K9nff5iC1p0mRXtLg9M1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hn6yuxFHodeyu7ISlhYrbSf9pTiH4TDEvbYLWjTwFO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zdf4y2etKBuIpkEU1zMwoCkCsdisfXZCh8QPamm+drY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rOQ9oMdiK5xxGH+jPzOvwVqdGGnF3+HkJXxn81s6hp4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "61aKKsE3+BJHHWYvs3xSIBvlRmKswmaOo5rygQJguUg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KuDb/GIzqDM8wv7m7m8AECiWJbae5EKKtJRugZx7kR0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Q+t8t2TmNUiCIorVr9F3AlVnX+Mpt2ZYvN+s8UGict8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJRZIpKxUgHyL83kW8cvfjkxN3z6WoNnUg+SQw+LK+k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnUsYjip8SvW0+m9mR5WWTkpK+p6uwJ6yBUAlBnFKMk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PArHlz+yPRYDycAP/PgnI/AkP8Wgmfg++Vf4UG1Bf0E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wnIh53Q3jeK8jEBe1n8kJLa89/H0BxO26ZU8SRIAs9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4F8U59gzBLGhq58PEWQk2nch+R0Va7eTUoxMneReUIA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ihKagIW3uT1dm22ROr/g5QaCpxZVj2+Fs/YSdM2Noco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EJtUOOwjkrPUi9mavYAi+Gom9Y2DuFll7aDwo4mq0M0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dIkr8dbaVRQFskAVT6B286BbcBBt1pZPEOcTZqk4ZcI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aYVAcZYkH/Tieoa1XOjE/zCy5AJcVTHjS0NG2QB7muA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sBidL6y8TenseetpioIAAtn0lK/7C8MoW4JXpVYi3z8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0Dd2klU/t4R86c2WJcJDAd57k/N7OjvYSO5Vf8KH8sw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I3jZ92WEVmZmgaIkLbuWhBxl7EM6bEjiEttgBJunArA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aGHoQMlgJoGvArjfIbc3nnkoc8SWBxcrN7hSmjMRzos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bpiWPnF/KVBQr5F6MEwc5ZZayzIRvQOLDAm4ntwOi8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tI7QVKbE6avWgDD9h4QKyFlnTxFCwd2iLySKakxNR/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XGsge0CnoaXgE3rcpKm8AEeku5QVfokS3kcI+JKV1lk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JQxlryW2Q5WOwfrjAnaZxDvC83Dg6sjRVP5zegf2WiM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YFuHKJOfoqp1iGVxoFjx7bLYgVdsN4GuUFxEgO9HJ5s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z6vUdiCR18ylKomf08uxcQHeRtmyav7/Ecvzz4av3k4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SPGo1Ib5AiP/tSllL7Z5PAypvnKdwJLzt8imfIMSEJQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "m94Nh6PFFQFLIib9Cu5LAKavhXnagSHG6F5EF8lD96I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pfEkQI98mB+gm1+JbmVurPAODMFPJ4E8DnqfVyUWbSo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DNj3OVRLbr43s0vd+rgWghOL3FqeO/60npdojC8Ry/M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kAYIQrjHVu49W8FTxyxJeiLVRWWjC9fPcBn+Hx1F+Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "aCSO7UVOpoQvu/iridarxkxV1SVxU1i9HVSYXUAeXk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Gh6hTP/yj1IKlXQ+Q69KTfMlGZjEcXoRLGbQHNFo/1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/gDgIFQ4tAlJk3GN48IS5Qa5IPmErwGk8CHxAbp6gs0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PICyimwPjxpusyKxNssOOwUotAUbygpyEtORsVGXT8g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4lu+cBHyAUvuxC6JUNyHLzHsCogGSWFFnUCkDwfQdgI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pSndkmoNUJwXjgkbkgOrT5f9nSvuoMEZOkwAN9ElRaE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tyW+D4i26QihNM5MuBM+wnt5AdWGSJaJ4X5ydc9iWTU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9Syjr8RoxUgPKr+O5rsCu07AvcebA4P8IVKyS1NVLWc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "67tPfDYnK2tmrioI51fOBG0ygajcV0pLo5+Zm/rEW7U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "y0EiPRxYTuS1eVTIaPQUQBBxwkyxNckbePvKgChwd0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NWd+2veAaeXQgR3vCvzlI4R1WW67D5YsVLdoXfdb8qg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PY5RQqKQsL2GqBBSPNOEVpojNFRX/NijCghIpxD6CZk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lcvwTyEjFlssCJtdjRpdN6oY+C7bxZY+WA+QAqzj9zg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWE7XRNylvTwO/9Fv56dNqUaQWMmESNS/GNIwgBaEI0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ijwlrUeS8nRYqK1F8kiCYF0mNDolEZS+/lJO1Lg93C8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8KzV+qYGYuIjoNj8eEpnTuHrMYuhzphl80rS6wrODuU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wDyTLjSEFF895hSQsHvmoEQVS6KIkZOtq1c9dVogm9I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SGrtPuMYCjUrfKF0Pq/thdaQzmGBMUvlwN3ORIu9tHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KySHON3hIoUk4xWcwTqk6IL0kgjzjxgMBObVIkCGvk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hBIdS9j0XJPeT4ot73ngELkpUoSixvRBvdOL9z48jY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Tx6um0q9HjS5ZvlFhvukpI6ORnyrXMWVW1OoxvgqII0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zFKlyfX5H81+d4A4J3FKn4T5JfG+OWtR06ddyX4Mxas=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cGgCDuPV7MeMMYEDpgOupqyNP4BQ4H7rBnd2QygumgM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IPaUoy98v11EoglTpJ4kBlEawoZ8y7BPwzjLYBpkvHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Pfo4Am6tOWAyZNn8G9W5HWWGC3ZWmX0igI/RRB870Ro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fnTSjd7bC1Udoq6iM7UDnHAC/lsIXSHp/Gy332qw+/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fApBgVRrTDyEumkeWs5p3ag9KB48SbU4Si0dl7Ns9rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QxudfBItgoCnUj5NXVnSmWH3HK76YtKkMmzn4lyyUYY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sSOvwhKa29Wq94bZ5jGIiJQGbG1uBrKSBfOYBz/oZeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FdaMgwwJ0NKsqmPZLC5oE+/0D74Dfpvig3LaI5yW5Fs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "sRWBy12IERN43BSZIrnBfC9+zFBUdvjTlkqIH81NGt4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/4tIRpxKhoOwnXAiFn1Z7Xmric4USOIfKvTYQXk3QTc=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimal": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mr/laWHUijZT5VT3x2a7crb7wgd/UXOGz8jr8BVqBpM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXVD/HSbBljko0jJcaxJ1nrzs2+pchLQqYR3vywS8SU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VDCpBYsJIxTfcI6Zgf7FTmKMxUffQv+Ys8zt5dlK76I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zYDslUwOUVNwTYkETfjceH/PU3bac9X3UuQyYJ19qK0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rAOmHSz18Jx107xpbv9fYcPOmh/KPAqge0PAtuhIRnc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BFOB1OGVUen7VsOuS0g8Ti7oDsTt2Yj/k/7ta8YAdGM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2fckE5SPs0GU+akDkUEM6mm0EtcV3WDE/sQsnTtodlk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mi9+aNjuwIvaMpSHENvKzKRAmX9cYguo2mXLvOoftHQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "K6TWn4VcWWkz/gkUkLmbtwkG7SNeABICmLDnoYJFlLU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z+2/cEtGU0Fq7QJFNGA/0y4aWAsw0ncG6X0LYRqwS3c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rrSIf+lgcNZFbbUkS9BmE045jRWBpcBJXHzfMVEFuzE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KlHL3Kyje1/LMIfgbCqw1SolxffJvvgsYBV5y77wxuA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hzJ1YBoETmYeCh352dBmG8d8Wse/bUcqojTWpWQlgsc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lSdcllDXx8MA+s0GULjDA1lQkcV0L8/aHtZ6dM2pZ2c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "HGr7JLTTA7ksAnlmjSIwwdBVvgr3fv46/FTdiCPYpos=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mMr25v1VwOEVZ8xaNUTHJCcsYqV+kwK6RzGYilxPtJ4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "129hJbziPJzNo0IoTU3bECdge0FtaPW8dm4dyNVNwYU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "doiLJ96qoo+v7NqIAZLq6BI5axV8Id8gT5vyJ1ZZ0PM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cW/Lcul3xYmfyvI/0x/+ybN78aQmBK1XIGs1EEU09N8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1aVIwzu9N5EJV9yEES+/g6hOTH7cA2NTcLIc59cu0wU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kw5tyl7Ew0r1wFyrN1mB9FiVW2hK2BxxxUuJDNWjyjQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ADAY2YBrm6RJBDY/eLLcfNxmSJku+mefz74gH66oyco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8gkqB1LojzPrstpFG7RHYmWxXpIlPDTqWnNsXH7XDRU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TESfVQMDQjfTZmHmUeYUE2XrokJ6CcrsKx/GmypGjOw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qFM+HFVQ539S0Ouynd1fBHoemFxtU9PRxE5+Dq7Ljy4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jPiFgUZteSmOg4wf3bsEKCZzcnxmMoILsgp/GaZD+dM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YaWUgJhYgPNN7TkFK16H8SsQS226JguaVhOIQxZwQNQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x90/Qk3AgyaFsvWf2KUCu5XF3j76WFSjt/GrnG01060=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZGWybWL/xlEdMYRFCZDUoz10sywTf7U/7wufsb78lH0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8l4ganN66jIcdxfHAdYLaym/mdzUUQ8TViw3MDRySPc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c8p5XEGTqxqvRGVlR+nkxw9uUdoqDqTB0jlYQ361qMA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1ZGFLlpQBcU3zIUg8MmgWwFKVz/SaA7eSYFrfe3Hb70=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "34529174M77rHr3Ftn9r8jU4a5ztYtyVhMn1wryZSkU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YkQ4pxFWzc49MS0vZM6S8mNo4wAwo21rePBeF3C+9mI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MhOf4mYY00KKVhptOcXf0bXB7WfuuM801MRJg4vXPgc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7pbbD8ihNIYIBJ3tAUPGzHpFPpIeCTAk5L88qCB0/9w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C9Q5PoNJTQo6pmNzXEEXUEqH22//UUWY1gqILcIywec=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AqGVk1QjDNDLYWGRBX/nv9QdGR2SEgXZEhF0EWBAiSE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/sGI3VCbJUKATULJmhTayPOeVW+5MjWSvVCqS77sRbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yOtbL0ih7gsuoxVtRrACMz+4N5uo7jIR7zzmtih2Beo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uA6dkb2Iyg9Su8UNDvZzkPx33kPZtWr/CCuEY+XgzUM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1DoSFPdHIplqZk+DyWAmEPckWwXw/GdB25NLmzeEZhk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OfDVS0T3ZuIXI/LNbTp6C9UbPIWLKiMy6Wx+9tqNl+g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3PZjHXbmG6GtPz+iapKtQ3yY4PoFFgjIy+fV2xQv1YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kaoLN0BoBWsmqE7kKkJQejATmLShd8qffcAmlhsxsGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vpiw9KgQdegGmp7IJnSGX2miujRLU0xzs0ITTqbPW7c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NuXFf7xGUefYjIUTuMxNUTCfVHrF8oL0AT7dPv5Plk4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8Tz53LxtfEBJ9eR+d2690kwNsqPV6XyKo2PlqZCbUrc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "e6zsOmHSyV8tyQtSX6BSwui6wK9v1xG3giY/IILJQ2w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2fedFMCxa2DzmIpfbDKGXhQg0PPwbUv6vIWdwwlvhms=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yEJKMFnWXTC8tJUfzCInzQRByNEPjHxpw4L4m8No91Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YbFuWwOiFuQyOzIJXDbOkCWC2DyrG+248TBuVCa1pXU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "w7IkwGdrguwDrar5+w0Z3va5wXyZ4VXJkDMISyRjPGo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YmJUoILTRJPhyIyWyXJTsQ6KSZHHbEpwPVup6Ldm/Ko=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FvMjcwVZJmfh6FP/yBg2wgskK+KHD8YVUY6WtrE8xbg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "h4HCtD4HyYz0nci49IVAa10Z4NJD/FHnRMV4sRX6qro=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nC7BpXCmym+a0Is2kReM9cYN2M1Eh5rVo8fjms14Oiw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1qtVWaeVo649ZZZtN8gXbwLgMWGLhz8beODbvru0I7Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Ej+mC0QFyMNIiSjR939S+iGBm7dm+1xObu5IcF/OpbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UQ8LbUG3cMegbr9yKfKanAPQE1EfPkFciVDrNqZ5GHY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4iI3mXIDjnX+ralk1HhJY43mZx2uTJM7hsv9MQzTX7E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0WQCcs3rvsasgohERHHCaBM4Iy6yomS4qJ5To3/yYiw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qDCTVPoue1/DOAGNAlUstdA9Sid8MgEY4e5EzHcVHRk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9F9Mus0UnlzHb8E8ImxgXtz6SU98YXD0JqswOKw/Bzs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pctHpHKVBBcsahQ6TNh6/1V1ZrqOtKSAPtATV6BJqh0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vfR3C/4cPkVdxtNaqtF/v635ONbhTf5WbwJM6s4EXNE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ejP43xUBIex6szDcqExAFpx1IE/Ksi5ywJ84GKDFRrs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jbP4AWYd3S2f3ejmMG7dS5IbrFol48UUoT+ve3JLN6U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CiDifI7958sUjNqJUBQULeyF7x0Up3loPWvYKw9uAuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "e2dQFsiHqd2BFHNhlSxocjd+cPs4wkcUW/CnCz4KNuM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PJFckVmzBipqaEqsuP2mkjhJE4qhw36NhfQ9DcOHyEU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "S3MeuJhET/B8VcfZYDR9fvX0nscDj416jdDekhmK11s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CGVHZRXpuNtQviDB2Kj03Q8uvs4w3RwTgV847R7GwPw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yUGgmgyLrxbEpDVy89XN3c2cmFpZXWWmuJ/35zVZ+Jw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "inb6Q97mL1a9onfNTT8v9wsoi/fz7KXKq3p8j90AU9c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CCyYx/4npq9xGO1lsCo8ZJhFO9/tN7DB+/DTE778rYg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "LNnYw4fwbiAZu0kBdAHPEm/OFnreS+oArdB5O/l/I98=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "P006SxmUS/RjiQJVYPdMFnNo3827GIEmSzagggkg05Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oyvwY+WsnYV6UHuPki1o0ILJ2jN4uyXf9yaUNtZJyBA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "36Lk3RHWh1wmtCWC/Yj6jNIo17U5y6SofAgQjzjVxD8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vOOo8FqeHnuO9mqOYjIb4vgwIwVyXZ5Y+bY5d9tGFUM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bJiDJjwQRNxqxlGjRm5lLziFhcfTDCnQ/qU1V85qcRg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2Qgrm1n0wUELAQnpkEiIHB856yv76q8jLbpiucetcm0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5ciPOYxTK0WDwwYyfs7yiVymwtYQXDELLxmM4JLl4/o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "31dC2WUSIOKQc4jwT6PikfeYTwi80mTlh7P31T5KNQU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YluTV2Mu53EGCKLcWfHZb0BM/IPW2xJdG3vYlDMEsM4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dh/8lGo2Ek6KukSwutH6Q35iy8TgV0FN0SJqe0ZVHN8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EVw6HpIs3BKen2qY2gz4y5dw1JpXilfh07msZfQqJpc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FYolLla9L8EZMROEdWetozroU40Dnmwwx2jIMrr7c1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "8M6k4QIutSIj6CM41vvkQtuFsaGrjoR9SZJVSLbfGKQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9LM0VoddDNHway442MqY+Z7vohB2UHau/cddshhzf40=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "66i8Ytco4Yq/FMl6pIRZazz3CZlu8fO2OI6Pne0pvHU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2a/HgX+MjZxjXtSvHgF1yEpHMJBkl8Caee8XrJtn0WM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "frhBM662c4ZVG7mWP8K/HhRjd01lydW/cPcHnDjifqc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6k1T7Q1t668PBqv6fwpVnT1HWh7Am5LtbKvwPJKcpGU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UlJ5Edfusp8S/Pyhw6KTglIejmbr1HO0zUeHn/qFETA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jsxsB+1ECB3assUdoC333do9tYH+LglHmVSJHy4N8Hg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2nzIQxGYF7j3bGsIesECEOqhObKs/9ywknPHeJ3yges=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xJYKtuWrX90JrJVoYtnwP7Ce59XQGFYoalxpNfBXEH0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NLI5lriBTleGCELcHBtNnmnvwSRkHHaLOX4cKboMgTw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hUOQV0RmE5aJdJww1AR9rirJG4zOYPo+6cCkgn/BGvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "h4G2Of76AgxcUziBwCyH+ayMOpdBWzg4yFrTfehSC2c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VuamM75RzGfQpj2/Y1jSVuQLrhy6OAwlZxjuQLB/9Ss=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kn9+hLq7hvw02xr9vrplOCDXKBTuFhfbX7d5v/l85Pg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fAiGqKyLZpGngBYFbtYUYt8LUrJ49vYafiboifTDjxs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BxRILymgfVJCczqjUIWXcfrfSgrrYkxTM5VTg0HkZLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CrFY/PzfPU2zsFkGLu/dI6mEeizZzCR+uYgjZBAHro0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "AEbrIuwvXLTtYgMjOqnGQ8y8axUn5Ukrn7UZRSyfQVw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ouWeVH3PEFg+dKWlXc6BmqirJOaVWjJbMzZbCsce4dA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+hd6xFB+EG+kVP7WH4uMd1CLaWMnt5xJRaY/Guuga9Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zmpGalfAOL3gmcUMJYcLYIRT/2VDO/1Dw4KdYZoNcng=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2PbHAoM/46J2UIZ/vyksKzmVVfxA7YUyIxWeL/N/vBk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7fD9x+zk5MVFesb59Klqiwwmve7P5ON/5COURXj5smE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tlrNQ4jaq051iaWonuv1sSrYhKkL1LtNZuHsvATha3s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fBodm28iClNpvlRyVq0dOdXQ08S7/N3aDwid+PdWvRo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "O+/nnRqT3Zv7yMMGug8GhKHaWy6u7BfRGtZoj0sdN1c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5AZZ/RTMY4Photnm/cpXZr/HnFRi3eljacMsipkJLHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oFVyo/kgoMxBIk2VE52ySSimeyU+Gr0EfCwapXnTpKA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Z8v59DfcnviA0mzvnUk+URVO0UuqAWvtarEgJva/n1c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "P64GOntZ+zBJEHkigoh9FSxSO+rJTqR20z5aiGQ9an4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xMbSuDPfWuO/Dm7wuVl06GnzG9uzTlJJX9vFy7boGlY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kXPB19mRClxdH2UsHwlttS6lLU2uHvzuZgZz7kC45jU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NDVjVYXAw4k0w4tFzvs7QDq39aaU3HQor4I2XMKKnCk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uKw/+ErVfpTO1dGUfd3T/eWfZW3nUxXCdBGdjvHtZ88=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "av0uxEzWkizYWm0QUM/MN1hLibnxPvCWJKwjOV4yVQY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ERwUC47dvgOBzIsEESMIioLYbFOxOe8PtJTnmDkKuHM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2gseKlG5Le12fS/vj4eaED4lturF16kAgJ1TpW3HxEE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7Cvg0Y3j/5i2F1TeXxlMmU7xwif5dCmwkZAOrVC5K2Y=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Aggregate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Aggregate.json
new file mode 100644
index 00000000000..a3e605d1bbb
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Aggregate.json
@@ -0,0 +1,590 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range DecimalPrecision. Aggregate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "aggregate": "default",
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "cursor": {},
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "aggregate"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MgwakFvPyBlwqFTbhWUF79URJQWFoJTGotlEVSPPUsQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DyBERpMSD5lEM5Nhpcn4WGgxgn/mkUVJp+PYSLX5jsE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I43iazc0xj1WVbYB/V+uTL/tughN1bBlxh1iypBnNsA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wjOBa/ATMuOywFmuPgC0GF/oeLqu0Z7eK5udzkTPbis=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gRQVwiR+m+0Vg8ZDXqrQQcVnTyobwCXNaA4BCJVXtMc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WUZ6huwx0ZbLb0R00uiC9FOJzsUocUN8qE5+YRenkvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7s79aKEuPgQcS/YPOOVcYNZvHIo7FFsWtFCrnDKXefA=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Aggregate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Aggregate.yml
new file mode 100644
index 00000000000..26f79947537
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Aggregate.yml
@@ -0,0 +1,315 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimalPrecision', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDecimal': '0.0'}, 'max': {'$numberDecimal': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range DecimalPrecision. Aggregate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimalPrecision: { $numberDecimal: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimalPrecision: { $numberDecimal: "1" } }
+ - name: aggregate
+ arguments:
+ pipeline: [{ $match: { "encryptedDecimalPrecision": { $gt: {$numberDecimal: "0" }} } }]
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDecimalPrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDecimalPrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ aggregate: *collection_name
+ pipeline: [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ]
+ cursor: {}
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: aggregate
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimalPrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimalPrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MgwakFvPyBlwqFTbhWUF79URJQWFoJTGotlEVSPPUsQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DyBERpMSD5lEM5Nhpcn4WGgxgn/mkUVJp+PYSLX5jsE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I43iazc0xj1WVbYB/V+uTL/tughN1bBlxh1iypBnNsA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wjOBa/ATMuOywFmuPgC0GF/oeLqu0Z7eK5udzkTPbis=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gRQVwiR+m+0Vg8ZDXqrQQcVnTyobwCXNaA4BCJVXtMc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WUZ6huwx0ZbLb0R00uiC9FOJzsUocUN8qE5+YRenkvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7s79aKEuPgQcS/YPOOVcYNZvHIo7FFsWtFCrnDKXefA=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Correctness.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Correctness.json
new file mode 100644
index 00000000000..9fafc243d66
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Correctness.json
@@ -0,0 +1,1650 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "Find with $gt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gte": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$lt": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$lte": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt below min",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$lt": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "must be greater than the range minimum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt above max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "200.0"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "must be less than the range max"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "0.0"
+ },
+ "$lt": {
+ "$numberDecimal": "2.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with full range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gte": {
+ "$numberDecimal": "0.0"
+ },
+ "$lte": {
+ "$numberDecimal": "200.0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$in": [
+ {
+ "$numberDecimal": "0.0"
+ }
+ ]
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Insert out of range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "-1"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "value must be greater than or equal to the minimum value"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Insert min and max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 200,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "200.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {},
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ },
+ {
+ "_id": 200,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "200.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$gte": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$lt": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$lte": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt below min",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$lt": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": {
+ "errorContains": "must be greater than the range minimum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt above max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "200.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": {
+ "errorContains": "must be less than the range max"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "0.0"
+ },
+ "$lt": {
+ "$numberDecimal": "2.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with full range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$gte": {
+ "$numberDecimal": "0.0"
+ },
+ "$lte": {
+ "$numberDecimal": "200.0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDecimalPrecision": {
+ "$in": [
+ {
+ "$numberDecimal": "0.0"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Insert Int",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "cannot encrypt element"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Find Int",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gte": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": {
+ "errorContains": "field type is not supported"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Correctness.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Correctness.yml
new file mode 100644
index 00000000000..9e2ee80aedf
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Correctness.yml
@@ -0,0 +1,422 @@
+# Test correctness results.
+# Does not include command monitoring expectations or outcome assertions to make tests more readable.
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimalPrecision', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDecimal': '0.0'}, 'max': {'$numberDecimal': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "Find with $gt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimalPrecision: { $numberDecimal: "0.0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimalPrecision: { $numberDecimal: "1.0" } }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $gt: { $numberDecimal: "0.0" } }}
+ result: [*doc1]
+
+ - description: "Find with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $gte: { $numberDecimal: "0.0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $gt: { $numberDecimal: "1.0" } }}
+ result: []
+
+ - description: "Find with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $lt: { $numberDecimal: "1.0" } }}
+ result: [*doc0]
+
+ - description: "Find with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $lte: { $numberDecimal: "1.0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $lt below min"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $lt: { $numberDecimal: "0.0" } }}
+ result:
+ errorContains: must be greater than the range minimum
+
+ - description: "Find with $gt above max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $gt: { $numberDecimal: "200.0" } }}
+ result:
+ errorContains: must be less than the range max
+
+ - description: "Find with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $gt: { $numberDecimal: "0.0" }, $lt: { $numberDecimal: "2.0"} }}
+ result: [*doc1]
+
+ - description: "Find with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $numberDecimal: "0.0" } }
+ result: [*doc0]
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $numberDecimal: "1.0" } }
+ result: [*doc1]
+
+ - description: "Find with full range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $gte: {$numberDecimal: "0.0"}, $lte: {$numberDecimal: "200.0"} } }
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $in: [ {$numberDecimal: "0.0"} ] } }
+ result: [*doc0]
+
+ - description: "Insert out of range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: { _id: 0, encryptedDecimalPrecision: { $numberDecimal: "-1" }}
+ result:
+ errorContains: value must be greater than or equal to the minimum value
+
+ - description: "Insert min and max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: *doc0
+ - name: insertOne
+ arguments:
+ document: &doc200 { _id: 200, encryptedDecimalPrecision: { $numberDecimal: "200.0" }}
+ - name: find
+ arguments:
+ filter: {}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc200]
+
+ - description: "Aggregate with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimalPrecision: { $gte: { $numberDecimal: "0.0" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimalPrecision: { $gt: { $numberDecimal: "1.0" } }} }
+ result: []
+
+ - description: "Aggregate with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimalPrecision: { $lt: { $numberDecimal: "1.0" } }} }
+ result: [*doc0]
+
+ - description: "Aggregate with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimalPrecision: { $lte: { $numberDecimal: "1.0" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $lt below min"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimalPrecision: { $lt: { $numberDecimal: "0.0" } }} }
+ result:
+ errorContains: must be greater than the range minimum
+
+ - description: "Aggregate with $gt above max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimalPrecision: { $gt: { $numberDecimal: "200.0" } }} }
+ result:
+ errorContains: must be less than the range max
+
+ - description: "Aggregate with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimalPrecision: { $gt: { $numberDecimal: "0.0" }, $lt: { $numberDecimal: "2.0"} }} }
+ result: [*doc1]
+
+ - description: "Aggregate with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimalPrecision: { $numberDecimal: "0.0" } } }
+ result: [*doc0]
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimalPrecision: { $numberDecimal: "1.0" } } }
+ result: [*doc1]
+
+ - description: "Aggregate with full range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimalPrecision: { $gte: {$numberDecimal: "0.0"}, $lte: {$numberDecimal: "200.0"} } } }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDecimalPrecision: { $in: [ {$numberDecimal: "0.0"} ] } } }
+ result: [*doc0]
+
+ - description: "Wrong type: Insert Int"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: { _id: 0, encryptedDecimalPrecision: { $numberInt: "0" }} }
+ result:
+ # Expect an error from mongocryptd.
+ errorContains: "cannot encrypt element"
+
+ - description: "Wrong type: Find Int"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $gte: { $numberInt: "0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result:
+ # expect an error from libmongocrypt.
+ errorContains: "field type is not supported"
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Delete.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Delete.json
new file mode 100644
index 00000000000..3d7d359af6b
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Delete.json
@@ -0,0 +1,493 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range DecimalPrecision. Delete.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "deleteOne",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ "result": {
+ "deletedCount": 1
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "delete": "default",
+ "deletes": [
+ {
+ "q": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimalPrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "delete"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Delete.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Delete.yml
new file mode 100644
index 00000000000..5603f6d34cd
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Delete.yml
@@ -0,0 +1,229 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimalPrecision', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDecimal': '0.0'}, 'max': {'$numberDecimal': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range DecimalPrecision. Delete."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimalPrecision: { $numberDecimal: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimalPrecision: { $numberDecimal: "1" } }
+ - name: deleteOne
+ arguments:
+ filter: { "encryptedDecimalPrecision": { $gt: {$numberDecimal: "0" }} }
+ result:
+ deletedCount: 1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDecimalPrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDecimalPrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ delete: *collection_name
+ deletes: [
+ {
+ "q": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ]
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimalPrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: delete
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimalPrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-FindOneAndUpdate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-FindOneAndUpdate.json
new file mode 100644
index 00000000000..b1442c3a3c5
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-FindOneAndUpdate.json
@@ -0,0 +1,612 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range DecimalPrecision. FindOneAndUpdate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "findOneAndUpdate",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "2"
+ }
+ }
+ },
+ "returnDocument": "Before"
+ },
+ "result": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "findAndModify": "default",
+ "query": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimalPrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "findAndModify"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0OKSXELxPP85SBVwDGf3LtMEQCJ8TTkFUl/+6jlkdb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uEw0lpQtBppR3vqV9j9+NQRSBF1BzZukb8c9IhyWvxc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zVhZ7Q59O087ji49oMJvBIgeir2oqvUpnh4p53GcTow=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dowrzKs+qJhRMZyKDbhjXbuX43FbmUKOaw9I8YlOZDw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ep5B6cska6THLIF7Mn3tn3RvV9EiwLSt0eZM/CLRUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "URNp/YmmDh5wIZUfAzzgPyJeMNiVx9PMsz52DZRujGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wlM4IAQhhKQEzoVqS8b1Ddd50GB95OFb9LnzOwyjCP4=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-FindOneAndUpdate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-FindOneAndUpdate.yml
new file mode 100644
index 00000000000..c79f5b9b7f3
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-FindOneAndUpdate.yml
@@ -0,0 +1,331 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimalPrecision', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDecimal': '0.0'}, 'max': {'$numberDecimal': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range DecimalPrecision. FindOneAndUpdate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimalPrecision: { $numberDecimal: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimalPrecision: { $numberDecimal: "1" } }
+ - name: findOneAndUpdate
+ arguments:
+ filter: { encryptedDecimalPrecision: { $gt: {$numberDecimal: "0"}} }
+ update: { "$set": { "encryptedDecimalPrecision": {$numberDecimal: "2"}}}
+ returnDocument: Before
+ result: *doc1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDecimalPrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDecimalPrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ findAndModify: *collection_name
+ query: {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ update: { "$set": {"encryptedDecimalPrecision": { $$type: "binData" }} }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimalPrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: findAndModify
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": {
+ "$numberInt": "0"
+ },
+ "encryptedDecimalPrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": {
+ "$numberInt": "1"
+ },
+ "encryptedDecimalPrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0OKSXELxPP85SBVwDGf3LtMEQCJ8TTkFUl/+6jlkdb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uEw0lpQtBppR3vqV9j9+NQRSBF1BzZukb8c9IhyWvxc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zVhZ7Q59O087ji49oMJvBIgeir2oqvUpnh4p53GcTow=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dowrzKs+qJhRMZyKDbhjXbuX43FbmUKOaw9I8YlOZDw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ep5B6cska6THLIF7Mn3tn3RvV9EiwLSt0eZM/CLRUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "URNp/YmmDh5wIZUfAzzgPyJeMNiVx9PMsz52DZRujGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wlM4IAQhhKQEzoVqS8b1Ddd50GB95OFb9LnzOwyjCP4=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-InsertFind.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-InsertFind.json
new file mode 100644
index 00000000000..3b8202ff87f
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-InsertFind.json
@@ -0,0 +1,577 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range DecimalPrecision. Insert and Find.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "default",
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "find"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MgwakFvPyBlwqFTbhWUF79URJQWFoJTGotlEVSPPUsQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DyBERpMSD5lEM5Nhpcn4WGgxgn/mkUVJp+PYSLX5jsE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I43iazc0xj1WVbYB/V+uTL/tughN1bBlxh1iypBnNsA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wjOBa/ATMuOywFmuPgC0GF/oeLqu0Z7eK5udzkTPbis=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gRQVwiR+m+0Vg8ZDXqrQQcVnTyobwCXNaA4BCJVXtMc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WUZ6huwx0ZbLb0R00uiC9FOJzsUocUN8qE5+YRenkvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7s79aKEuPgQcS/YPOOVcYNZvHIo7FFsWtFCrnDKXefA=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-InsertFind.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-InsertFind.yml
new file mode 100644
index 00000000000..2bdd29cdb3e
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-InsertFind.yml
@@ -0,0 +1,305 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimalPrecision', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDecimal': '0.0'}, 'max': {'$numberDecimal': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range DecimalPrecision. Insert and Find."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimalPrecision: { $numberDecimal: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimalPrecision: { $numberDecimal: "1" } }
+ - name: find
+ arguments:
+ filter: { encryptedDecimalPrecision: { $gt: { $numberDecimal: "0" } } }
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDecimalPrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDecimalPrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ find: *collection_name
+ filter:
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: find
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MgwakFvPyBlwqFTbhWUF79URJQWFoJTGotlEVSPPUsQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DyBERpMSD5lEM5Nhpcn4WGgxgn/mkUVJp+PYSLX5jsE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I43iazc0xj1WVbYB/V+uTL/tughN1bBlxh1iypBnNsA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wjOBa/ATMuOywFmuPgC0GF/oeLqu0Z7eK5udzkTPbis=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gRQVwiR+m+0Vg8ZDXqrQQcVnTyobwCXNaA4BCJVXtMc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WUZ6huwx0ZbLb0R00uiC9FOJzsUocUN8qE5+YRenkvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7s79aKEuPgQcS/YPOOVcYNZvHIo7FFsWtFCrnDKXefA=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Update.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Update.json
new file mode 100644
index 00000000000..3dc6631c617
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Update.json
@@ -0,0 +1,612 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range DecimalPrecision. Update.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "updateOne",
+ "arguments": {
+ "filter": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$numberDecimal": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDecimalPrecision": {
+ "$numberDecimal": "2"
+ }
+ }
+ }
+ },
+ "result": {
+ "matchedCount": 1,
+ "modifiedCount": 1,
+ "upsertedCount": 0
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command_name": "update",
+ "command": {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDecimalPrecision",
+ "bsonType": "decimal",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDecimal": "0.0"
+ },
+ "max": {
+ "$numberDecimal": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimalPrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0OKSXELxPP85SBVwDGf3LtMEQCJ8TTkFUl/+6jlkdb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uEw0lpQtBppR3vqV9j9+NQRSBF1BzZukb8c9IhyWvxc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zVhZ7Q59O087ji49oMJvBIgeir2oqvUpnh4p53GcTow=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dowrzKs+qJhRMZyKDbhjXbuX43FbmUKOaw9I8YlOZDw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ep5B6cska6THLIF7Mn3tn3RvV9EiwLSt0eZM/CLRUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "URNp/YmmDh5wIZUfAzzgPyJeMNiVx9PMsz52DZRujGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wlM4IAQhhKQEzoVqS8b1Ddd50GB95OFb9LnzOwyjCP4=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Update.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Update.yml
new file mode 100644
index 00000000000..e852a30c61c
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DecimalPrecision-Update.yml
@@ -0,0 +1,344 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDecimalPrecision', 'bsonType': 'decimal', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDecimal': '0.0'}, 'max': {'$numberDecimal': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range DecimalPrecision. Update."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDecimalPrecision: { $numberDecimal: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDecimalPrecision: { $numberDecimal: "1" } }
+ - name: updateOne
+ arguments:
+ filter: { encryptedDecimalPrecision: { $gt: { $numberDecimal: "0" } } }
+ update: { "$set": { "encryptedDecimalPrecision": { $numberDecimal: "2" } }}
+ result:
+ matchedCount: 1
+ modifiedCount: 1
+ upsertedCount: 0
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDecimalPrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDecimalPrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command_name: update
+ command:
+ {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedDecimalPrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedDecimalPrecision": { $$type: "binData" }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": *encrypted_fields
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDecimalPrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDecimalPrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDecimalPrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0OKSXELxPP85SBVwDGf3LtMEQCJ8TTkFUl/+6jlkdb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uEw0lpQtBppR3vqV9j9+NQRSBF1BzZukb8c9IhyWvxc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zVhZ7Q59O087ji49oMJvBIgeir2oqvUpnh4p53GcTow=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dowrzKs+qJhRMZyKDbhjXbuX43FbmUKOaw9I8YlOZDw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ep5B6cska6THLIF7Mn3tn3RvV9EiwLSt0eZM/CLRUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "URNp/YmmDh5wIZUfAzzgPyJeMNiVx9PMsz52DZRujGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wlM4IAQhhKQEzoVqS8b1Ddd50GB95OFb9LnzOwyjCP4=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Aggregate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Aggregate.json
new file mode 100644
index 00000000000..3d54be3d188
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Aggregate.json
@@ -0,0 +1,1138 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Double. Aggregate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDouble": {
+ "$gt": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "aggregate": "default",
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDouble": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "cursor": {},
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "aggregate"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2FIZh/9N+NeJEQwxYIX5ikQT85xJzulBNReXk8PnG/s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I93Md7QNPGmEEGYU1+VVCqBPBEvXdqHPtTJtMOn06Yk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "GecBFQ1PemlECWZWCl7f74vmsL6eB6mzQ9n6tK6FYfs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QpjhZl+O1ORifgtCZuWAdcP6OKL7IZ2cA46v8FJcV28=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FWXI/yZ1M+2fIboeMCDMlp+I2NwPQDtoM/wWselOPYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uk26nvN/LdRLaBphiBgIZzT0sSpoO1z0RdDWRm/xrSA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hiiYSH1KZovAULc7rlmEU74wCjzDR+mm6ZnsgvFQjMw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hRzvMvWPX0sJme+wck67lwbKDFaWOa+Eyef+JSdc1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PSx5D+zqC9c295dguX4+EobT4IEzfffdfjzC8DWpB5Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QzfXQCVTjPQv2h21v95HYPq8uCsVJ2tPnjv79gAaM9M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XcGDO/dlTcEMLqwcm55UmOqK+KpBmbzZO1LIzX7GPaQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Lf+o4E7YB5ynzUPC6KTyW0lj6Cg9oLIu1Sdd1ODHctA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wAuVn02LAVo5Y+TUocvkoenFYWzpu38k0NmGZOsAjS4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yJGDtveLbbo/0HtCtiTSsvVI/0agg/U1bFaQ0yhK12o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KsEy0zgYcmkM+O/fWF9z3aJGIk22XCk+Aw96HB6JU68=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "p+AnMI5ZxdJMSIEJmXXya+FeH5yubmOdViwUO89j0Rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/jLix56jzeywBtNuGw55lCXyebQoSIhbful0hOKxKDY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fvDvSPomtJsl1S3+8/tzFCE8scHIdJY5hB9CdTEsoFo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oV5hOJzPXxfTuRdKIlF4uYEoMDuqH+G7/3qgndDr0PM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3ALwcvLj3VOfgD6OqXAO13h1ZkOv46R6+Oy6SUKh53I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gxaB9FJj0IM+InhvAjwWaex3UIZ9SAnDiUd5WHSY/l0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "66NPvDygJzKJqddfNuDuNOpvGajjFRtvhkwfUkiYmXw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1dWcQIocRAcO9XnXYqbhl83jc0RgjQpsrWd8dC27trg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "npos0Uf1DT3ztSCjPVY9EImlRnTHB1KLrvmVSqBQ/8E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TEI9qBx/tK1l1H0v1scMG8Srmtwo5VxWHADPBSlWrXk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3wUN2ypQKoj+5ASkeIK9ycxhahVxyTmGopigoUAlyYs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o/oksSnUS+nIq6ozWTbB5bJh+NoaPj8deAA23uxiWCk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KExYPruhA31e8xuSwvfUfDcyY/H2Va6taUd0k4yFgLc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/x+dNfxdd/lkx8Z8VZVfoYl7LPoaZ/iKEzZXBrAtIJc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DE4cmjFLPqZlmRomO0qQiruUBtzoCe8ZdNRcfNH92pU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M6EKNcLPw/iojAChgYUSieaBYWcbsjKtB94SaHOr8vk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+qP49lDPeyhaduTvXJgtJEqHNEYANVu9Bg3Bxz7Td9w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ruMrC2VIS+VKbJwCFb3bfkaLTju9nE+yPONV9s0M0Vo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EbjDlSB5JKnDKff4d8hOmaOwJ7B9Q6NQFisLj+DPC+0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C/yYOTB94edyqAbiQNu8/H7FoG3yRRjHDkMykz4+Mv0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CBxqrejG+qQQq2YTd6iP/06kiu2CxxzBFaZK3Ofb1CM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2ZOQ/fpho+AbDENWBZaln7wRoepIRdhyT648dr8O5cU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EghIgEPz01+myPgj8oid+PgncvobvC7vjvG3THEEQ0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "92CysZYNF8riwAMhdrIPKxfODw9p07cKQy/Snn8XmVY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VO0LeTBQmsEf7sCHzTnZwUPNTqRZ49R8V5E9XnZ/5N4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "exs8BQMJq7U6ZXYgIizT7XN+X/hOmmn4YEuzev9zgSI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qHpS4k1I+gPniNp4CA8TY8lLN36vBYmgbKMFpbYMEqg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+7lWKCKAWFw6gPZdHE6E8KIfI14/fSvtWUmllb5WLi0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YiH/US0q6679hWblFDDKNqUjCgggoU8sUCssTIF1QbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YgwkKElEubNfvXL9hJxzqQUQtHiXN/OCGxNL1MUZZlM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hZFST4INZTTuhvJlGJeMwlUAK270UCOTCDeBAnN4a7g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "24I1Zw35AuGnK3CqJhbCwYb0IPuu5sCRrM5iyeITOLc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vgD12JB4Q1S/kGPSQ1KOgp386KnG1GbM/5+60oRGcGw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+wNE+OL+CB9d4AUJdVxd56jUJCAXmmk9fapuB2TAc4g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uhQh1B2Pe4RkNw/kPEcgaLenuikKoRf1iyfZhpXdodc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eu8gjAUIp8ybO204AgeOq5v1neI1yljqy5v3I6lo1lM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7QG6oVbASBAjrnCPxzzUNnuFSFNlKhbuBafkF8pr7Is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PUS1xb2oHSDTdYltutoSSxBiJ1NjxH3l2kA4P1CZLEs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XPMh/JDC/O93gJJCwwgJDb8ssWZvRvezNmKmyn3nIfk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jWz+KGwMk/GOvFAK2rOxF3OjxeZAWfmUQ1HGJ7icw4A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o7XbW68pc6flYigf3LW4WAGUWxpeqxaQLkHUhUR9RZ8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nqR+g60+5U0okbqJadSqGgnC+j1JcP8rwMcfzOs2ACI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hz43qVK95tSfbYFtaE/8fE97XMk1RiO8XpWjwZHB80o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "noZUWlZ8M6KXU5rkifyo8/duw5IL7/fXbJvT7bNmW9k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WONVHCuPSanXDRQQ/3tmyJ0Vq+Lu/4hRaMUf0g0kSuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UEaj6vQRoIghE8Movd8AGXhtwIOXlP4cBsECIUvE5Y8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "D3n2YcO8+PB4C8brDo7kxKjF9Y844rVkdRMLTgsQkrw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C+YA0G9KjxZVaWwOMuh/dcnHnHAlYnbFrRl0IEpmsY0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rUnmbmQanxrbFPYYrwyQ53x66OSt27yAvF+s48ezKDc=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Aggregate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Aggregate.yml
new file mode 100644
index 00000000000..67598094c1e
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Aggregate.yml
@@ -0,0 +1,899 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDouble', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Double. Aggregate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDouble: { $numberDouble: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDouble: { $numberDouble: "1" } }
+ - name: aggregate
+ arguments:
+ pipeline: [{ $match: { "encryptedDouble": { $gt: {$numberDouble: "0" }} } }]
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDouble": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDouble": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ aggregate: *collection_name
+ pipeline: [
+ {
+ "$match": {
+ "encryptedDouble": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ]
+ cursor: {}
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: aggregate
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDouble": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDouble": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2FIZh/9N+NeJEQwxYIX5ikQT85xJzulBNReXk8PnG/s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I93Md7QNPGmEEGYU1+VVCqBPBEvXdqHPtTJtMOn06Yk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "GecBFQ1PemlECWZWCl7f74vmsL6eB6mzQ9n6tK6FYfs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QpjhZl+O1ORifgtCZuWAdcP6OKL7IZ2cA46v8FJcV28=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FWXI/yZ1M+2fIboeMCDMlp+I2NwPQDtoM/wWselOPYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uk26nvN/LdRLaBphiBgIZzT0sSpoO1z0RdDWRm/xrSA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hiiYSH1KZovAULc7rlmEU74wCjzDR+mm6ZnsgvFQjMw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hRzvMvWPX0sJme+wck67lwbKDFaWOa+Eyef+JSdc1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PSx5D+zqC9c295dguX4+EobT4IEzfffdfjzC8DWpB5Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QzfXQCVTjPQv2h21v95HYPq8uCsVJ2tPnjv79gAaM9M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XcGDO/dlTcEMLqwcm55UmOqK+KpBmbzZO1LIzX7GPaQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Lf+o4E7YB5ynzUPC6KTyW0lj6Cg9oLIu1Sdd1ODHctA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wAuVn02LAVo5Y+TUocvkoenFYWzpu38k0NmGZOsAjS4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yJGDtveLbbo/0HtCtiTSsvVI/0agg/U1bFaQ0yhK12o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KsEy0zgYcmkM+O/fWF9z3aJGIk22XCk+Aw96HB6JU68=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "p+AnMI5ZxdJMSIEJmXXya+FeH5yubmOdViwUO89j0Rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/jLix56jzeywBtNuGw55lCXyebQoSIhbful0hOKxKDY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fvDvSPomtJsl1S3+8/tzFCE8scHIdJY5hB9CdTEsoFo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oV5hOJzPXxfTuRdKIlF4uYEoMDuqH+G7/3qgndDr0PM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3ALwcvLj3VOfgD6OqXAO13h1ZkOv46R6+Oy6SUKh53I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gxaB9FJj0IM+InhvAjwWaex3UIZ9SAnDiUd5WHSY/l0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "66NPvDygJzKJqddfNuDuNOpvGajjFRtvhkwfUkiYmXw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1dWcQIocRAcO9XnXYqbhl83jc0RgjQpsrWd8dC27trg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "npos0Uf1DT3ztSCjPVY9EImlRnTHB1KLrvmVSqBQ/8E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TEI9qBx/tK1l1H0v1scMG8Srmtwo5VxWHADPBSlWrXk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3wUN2ypQKoj+5ASkeIK9ycxhahVxyTmGopigoUAlyYs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o/oksSnUS+nIq6ozWTbB5bJh+NoaPj8deAA23uxiWCk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KExYPruhA31e8xuSwvfUfDcyY/H2Va6taUd0k4yFgLc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/x+dNfxdd/lkx8Z8VZVfoYl7LPoaZ/iKEzZXBrAtIJc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DE4cmjFLPqZlmRomO0qQiruUBtzoCe8ZdNRcfNH92pU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M6EKNcLPw/iojAChgYUSieaBYWcbsjKtB94SaHOr8vk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+qP49lDPeyhaduTvXJgtJEqHNEYANVu9Bg3Bxz7Td9w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ruMrC2VIS+VKbJwCFb3bfkaLTju9nE+yPONV9s0M0Vo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EbjDlSB5JKnDKff4d8hOmaOwJ7B9Q6NQFisLj+DPC+0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C/yYOTB94edyqAbiQNu8/H7FoG3yRRjHDkMykz4+Mv0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CBxqrejG+qQQq2YTd6iP/06kiu2CxxzBFaZK3Ofb1CM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2ZOQ/fpho+AbDENWBZaln7wRoepIRdhyT648dr8O5cU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EghIgEPz01+myPgj8oid+PgncvobvC7vjvG3THEEQ0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "92CysZYNF8riwAMhdrIPKxfODw9p07cKQy/Snn8XmVY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VO0LeTBQmsEf7sCHzTnZwUPNTqRZ49R8V5E9XnZ/5N4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "exs8BQMJq7U6ZXYgIizT7XN+X/hOmmn4YEuzev9zgSI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qHpS4k1I+gPniNp4CA8TY8lLN36vBYmgbKMFpbYMEqg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+7lWKCKAWFw6gPZdHE6E8KIfI14/fSvtWUmllb5WLi0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YiH/US0q6679hWblFDDKNqUjCgggoU8sUCssTIF1QbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YgwkKElEubNfvXL9hJxzqQUQtHiXN/OCGxNL1MUZZlM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hZFST4INZTTuhvJlGJeMwlUAK270UCOTCDeBAnN4a7g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "24I1Zw35AuGnK3CqJhbCwYb0IPuu5sCRrM5iyeITOLc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vgD12JB4Q1S/kGPSQ1KOgp386KnG1GbM/5+60oRGcGw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+wNE+OL+CB9d4AUJdVxd56jUJCAXmmk9fapuB2TAc4g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uhQh1B2Pe4RkNw/kPEcgaLenuikKoRf1iyfZhpXdodc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eu8gjAUIp8ybO204AgeOq5v1neI1yljqy5v3I6lo1lM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7QG6oVbASBAjrnCPxzzUNnuFSFNlKhbuBafkF8pr7Is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PUS1xb2oHSDTdYltutoSSxBiJ1NjxH3l2kA4P1CZLEs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XPMh/JDC/O93gJJCwwgJDb8ssWZvRvezNmKmyn3nIfk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jWz+KGwMk/GOvFAK2rOxF3OjxeZAWfmUQ1HGJ7icw4A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o7XbW68pc6flYigf3LW4WAGUWxpeqxaQLkHUhUR9RZ8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nqR+g60+5U0okbqJadSqGgnC+j1JcP8rwMcfzOs2ACI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hz43qVK95tSfbYFtaE/8fE97XMk1RiO8XpWjwZHB80o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "noZUWlZ8M6KXU5rkifyo8/duw5IL7/fXbJvT7bNmW9k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WONVHCuPSanXDRQQ/3tmyJ0Vq+Lu/4hRaMUf0g0kSuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UEaj6vQRoIghE8Movd8AGXhtwIOXlP4cBsECIUvE5Y8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "D3n2YcO8+PB4C8brDo7kxKjF9Y844rVkdRMLTgsQkrw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C+YA0G9KjxZVaWwOMuh/dcnHnHAlYnbFrRl0IEpmsY0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rUnmbmQanxrbFPYYrwyQ53x66OSt27yAvF+s48ezKDc=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Correctness.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Correctness.json
new file mode 100644
index 00000000000..b09e966324e
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Correctness.json
@@ -0,0 +1,1160 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "Find with $gt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$gt": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$gte": {
+ "$numberDouble": "0.0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$gt": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$lt": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$lte": {
+ "$numberDouble": "1.0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$gt": {
+ "$numberDouble": "0.0"
+ },
+ "$lt": {
+ "$numberDouble": "2.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$in": [
+ {
+ "$numberDouble": "0.0"
+ }
+ ]
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDouble": {
+ "$gte": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDouble": {
+ "$gt": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDouble": {
+ "$lt": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDouble": {
+ "$lte": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDouble": {
+ "$gt": {
+ "$numberDouble": "0.0"
+ },
+ "$lt": {
+ "$numberDouble": "2.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDouble": {
+ "$in": [
+ {
+ "$numberDouble": "0.0"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Insert Int",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "cannot encrypt element"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Find Int",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$gte": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": {
+ "errorContains": "field type is not supported"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Correctness.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Correctness.yml
new file mode 100644
index 00000000000..bca46f2c66d
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Correctness.yml
@@ -0,0 +1,290 @@
+# Test correctness results.
+# Does not include command monitoring expectations or outcome assertions to make tests more readable.
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDouble', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "Find with $gt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDouble: { $numberDouble: "0.0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDouble: { $numberDouble: "1.0" } }
+ - name: find
+ arguments:
+ filter: { encryptedDouble: { $gt: { $numberDouble: "0.0" } }}
+ result: [*doc1]
+
+ - description: "Find with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDouble: { $gte: { $numberDouble: "0.0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDouble: { $gt: { $numberDouble: "1.0" } }}
+ result: []
+
+ - description: "Find with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDouble: { $lt: { $numberDouble: "1.0" } }}
+ result: [*doc0]
+
+ - description: "Find with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDouble: { $lte: { $numberDouble: "1.0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDouble: { $gt: { $numberDouble: "0.0" }, $lt: { $numberDouble: "2.0"} }}
+ result: [*doc1]
+
+ - description: "Find with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDouble: { $numberDouble: "0.0" } }
+ result: [*doc0]
+ - name: find
+ arguments:
+ filter: { encryptedDouble: { $numberDouble: "1.0" } }
+ result: [*doc1]
+
+ - description: "Find with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDouble: { $in: [ {$numberDouble: "0.0"} ] } }
+ result: [*doc0]
+
+ - description: "Aggregate with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDouble: { $gte: { $numberDouble: "0.0" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDouble: { $gt: { $numberDouble: "1.0" } }} }
+ result: []
+
+ - description: "Aggregate with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDouble: { $lt: { $numberDouble: "1.0" } }} }
+ result: [*doc0]
+
+ - description: "Aggregate with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDouble: { $lte: { $numberDouble: "1.0" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDouble: { $gt: { $numberDouble: "0.0" }, $lt: { $numberDouble: "2.0"} }} }
+ result: [*doc1]
+
+ - description: "Aggregate with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDouble: { $numberDouble: "0.0" } } }
+ result: [*doc0]
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDouble: { $numberDouble: "1.0" } } }
+ result: [*doc1]
+
+ - description: "Aggregate with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDouble: { $in: [ {$numberDouble: "0.0"} ] } } }
+ result: [*doc0]
+
+ - description: "Wrong type: Insert Int"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: { _id: 0, encryptedDouble: { $numberInt: "0" }} }
+ result:
+ # Expect an error from mongocryptd.
+ errorContains: "cannot encrypt element"
+
+ - description: "Wrong type: Find Int"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: find
+ arguments:
+ filter: { encryptedDouble: { $gte: { $numberInt: "0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result:
+ # expect an error from libmongocrypt.
+ errorContains: "field type is not supported"
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Delete.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Delete.json
new file mode 100644
index 00000000000..fa09cb87df6
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Delete.json
@@ -0,0 +1,749 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Double. Delete.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "deleteOne",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$gt": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ "result": {
+ "deletedCount": 1
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "delete": "default",
+ "deletes": [
+ {
+ "q": {
+ "encryptedDouble": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDouble": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "delete"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Delete.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Delete.yml
new file mode 100644
index 00000000000..5fc9680ae07
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Delete.yml
@@ -0,0 +1,521 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDouble', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Double. Delete."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDouble: { $numberDouble: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDouble: { $numberDouble: "1" } }
+ - name: deleteOne
+ arguments:
+ filter: { "encryptedDouble": { $gt: {$numberDouble: "0" }} }
+ result:
+ deletedCount: 1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDouble": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDouble": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ delete: *collection_name
+ deletes: [
+ {
+ "q": {
+ "encryptedDouble": {
+ "$gt": {
+ "$binary": {
+ "base64": "Cq8kAAADcGF5bG9hZAB/JAAABGcAQyQAAAMwAH0AAAAFZAAgAAAAAHgYoMGjEE6fAlAhICv0+doHcVX8CmMVxyq7+jlyGrvmBXMAIAAAAAC/5MQZgTHuIr/O5Z3mXPvqrom5JTQ8IeSpQGhO9sB+8gVjACAAAAAAPMgD8Rqnd94atKnMyPjlTwthUQ710MKJVqgtwNXLFWwAAzEAfQAAAAVkACAAAAAA2kiWNvEc4zunJ1jzvuClFC9hjZMYruKCqAaxq+oY8EAFcwAgAAAAACofIS72Cm6s866UCk+evTH3CvKBj/uZd72sAL608rzTBWMAIAAAAAB7NkTFgsBuPIyxW5KtYZD4uxdgRynoAUwA2RDj3qZNdwADMgB9AAAABWQAIAAAAABkfoBGmU3hjYBvQbjNW19kfXneBQsQQPRfUL3UAwI2cAVzACAAAAAAUpK2BUOqX/DGdX5YJniEZMWkofxHqeAbXceEGJxhp8AFYwAgAAAAAENNdd+fMV7VQzshj6RdvsxqDHYkPDxggdUHw3JbmFBeAAMzAH0AAAAFZAAgAAAAAFNprhQ3ZwIcYbuzLolAT5n/vc14P9kUUQComDu6eFyKBXMAIAAAAAAcx9z9pk32YbPV/sfPZl9ALIEVsqoLXgqWLVK/tP+heAVjACAAAAAA3eqduo9CWE5BePqBq7KCh5++QqXnyjCwybB15Zoeiu4AAzQAfQAAAAVkACAAAAAAODI+pB2pCuB+YmNEUAgtMfNdt3DmSkrJ96gRzLphgb8FcwAgAAAAAAT7dewFDxUDECQ3zVq75/cUN4IP+zsqhkP5+czUwlJIBWMAIAAAAABYcCJA2jocGQiF/vZ9VDEktoK015OqfY64yZhmNPs9GQADNQB9AAAABWQAIAAAAACNAk+yTZ4Ewk1EnotQK8O3h1gg9I7pr9q2+4po1iJVgAVzACAAAAAAUj/LesmtEsgqYVzMJ67umVA11hJTdDXwbxDoQ71vWyUFYwAgAAAAAG32XaKjEO9YTSLMnDR5eiaUpgBQz0n4M3VpBqhWTaEnAAM2AH0AAAAFZAAgAAAAAD/FIrGYFDjyYmVb7oTMVwweWP7A6F9LnyIuNO4MjBnXBXMAIAAAAACIZgJCQRZu7NhuNMyOqCn1tf+DfU1qm10TPCfj5JYV3wVjACAAAAAAZCaO06/DjOBjNrTxB8jdxM7X4XvNu9QTa2Y00kZJwgEAAzcAfQAAAAVkACAAAAAAciRW40ORJLVwchOEpz87Svb+5toAFM6LxDWv928ECwQFcwAgAAAAAN0dipyESIkszfjRzdDi8kAGaa2Hf4wrPAtiWwboZLuxBWMAIAAAAADhvKHhF7zfNRnG8QfiIlKycV6L6iGxbGNKkHligA9rAgADOAB9AAAABWQAIAAAAACZqAyCzYQupJ95mrBJX54yIz9VY7I0WrxpNYElCI4dTQVzACAAAAAA/eyJb6d1xfE+jJlVXMTD3HS/NEYENPVKAuj56Dr2dSEFYwAgAAAAAMfcJKj77c6y/RBQ5hb5LSNdvbYvCAHR59KLnbmxj1gAAAM5AH0AAAAFZAAgAAAAAI5bm3YO0Xgf0VT+qjVTTfvckecM3Cwqj7DTKZXf8/NXBXMAIAAAAAD/m+h8fBhWaHm6Ykuz0WX1xL4Eme3ErLObyEVJf8NCywVjACAAAAAAiGdTXD22l1zDxHeF4NXUTiBnNTsdpzJRwM6riTPuOogAAzEwAH0AAAAFZAAgAAAAANqo4+p6qdtCzcB4BX1wQ6llU7eFBnuu4MtZwp4B6mDlBXMAIAAAAAAGiz+VaukMZ+6IH4jtn4KWWdKK4/W+O+gRioQDrfzpMgVjACAAAAAAl/wlBjSJW/hKkll8HSBCGw4Ce1pJ5rZuhVE09hKq4jQAAzExAH0AAAAFZAAgAAAAAPrFXmHP2Y4YAm7b/aqsdn/DPoDkv7B8egWkfe23XsM1BXMAIAAAAAAGhwpKAr7skeqHm3oseSbO7qKNhmYsuUrECBxJ5k+D2AVjACAAAAAAKSsxERy2OBhb5MiH9/H2BET2oeU6yVihiAoWi/16FroAAzEyAH0AAAAFZAAgAAAAABzjYxwAjXxXc0Uxv18rH8I3my0Aguow0kTwKyxbrm+cBXMAIAAAAADVbqJVr6IdokuhXkEtXF0C2gINLiAjMVN20lE20Vmp2QVjACAAAAAACJ+VAwl9X88mjC76yzkWeL4K6AamNYjbNkpS9B6fQE4AAzEzAH0AAAAFZAAgAAAAAFMm2feF2fFCm/UC6AfIyepX/xJDSmnnolQIBnHcPmb5BXMAIAAAAABLI11kFrQoaNVZFmq/38aRNImPOjdJh0Lo6irI8M/AaAVjACAAAAAAZFgYh4nV8YN+/AAqe/QhKDkNBPg8KraCG7y3bOzhPV4AAzE0AH0AAAAFZAAgAAAAAJvXB3KyNiNtQko4SSzo/9b2qmM2zU9CQTTDfLSBWMgRBXMAIAAAAAAvjuVP7KsLRDeqVqRziTKpBrjVyqKiIbO9Gw8Wl2wFTAVjACAAAAAARuBn3JdQ8so7Gy0XVH0CtlvtRoJWhSrJP6eRIqbyWh8AAzE1AH0AAAAFZAAgAAAAAPGdcxDiid8z8XYnfdDivNMYVPgBKdGOUw6UStU+48CdBXMAIAAAAAARj6g1Ap0eEfuCZ4X2TsEw+Djrhto3fA5nLwPaY0vCTgVjACAAAAAATxLY6SkcLPaoOBJpQsggEqoxgJgiY9seP3fBQM05PckAAzE2AH0AAAAFZAAgAAAAAP5rGPrYGt3aKob5f/ldP0qrW7bmWvqnKY4QwdDWz400BXMAIAAAAADTQkW2ymaaf/bhteOOGmSrIR97bAnJx+yN3yMj1bTeewVjACAAAAAA6O+wIMt3xMITuCxVrqOCNBPX5F122G+/Is+EYkzUvVYAAzE3AH0AAAAFZAAgAAAAAAlz6wJze5UkIxKpJOZFGCOf3v2KByWyI6NB6JM9wNcBBXMAIAAAAABUC7P/neUIHHoZtq0jFVBHY75tSFYr1Y5S16YN5XxC1QVjACAAAAAANv97jMd9JmZ7lMeCzK7jaZHZYsZJNl6N9g9WXzd2om0AAzE4AH0AAAAFZAAgAAAAAFJ8AtHcjia/9Y5pLEc3qVgH5xKiXw12G9Kn2A1EY8McBXMAIAAAAAAxe7Bdw7eUSBk/oAawa7uicTEDgXLymRNhBy1LAxhDvwVjACAAAAAAtOUZ2NeUWwESpq95O92dhqYBt8RtFnjT43E7k9mQF3oAAzE5AH0AAAAFZAAgAAAAAO8uwQUaKFb6vqR3Sv3Wn4QAonC2exOC9lGG1juqP5DtBXMAIAAAAABZf1KyJgQg8/Rf5c02DgDK2aQu0rNCOvaL60ohDHyY+gVjACAAAAAA5nAWj1Ek8p0MLYZEB3yoVFDfBYZ+/ZpIo71u+W9hprcAAzIwAH0AAAAFZAAgAAAAAE8YtqyRsGCeiR6hhiyisR/hccmK4nZqIMzO4lUBmEFzBXMAIAAAAAC1UYOSKqAeG1UJiKjWFVskRhuFKpj9Ezy+lICZvFlN5AVjACAAAAAA37oP30mTzVftI2FL9Uwyls/jqLqbmRDQk7p7nlx44uYAAzIxAH0AAAAFZAAgAAAAAPhCrMausDx1QUIEqp9rUdRKyM6a9AAx7jQ3ILIu8wNIBXMAIAAAAACmH8lotGCiF2q9VQxhsS+7LAZv79VUAsOUALaGxE/EpAVjACAAAAAAhVIkl8p19VZ0gpg32s++Jda3qsVSVB5tV4CKrtjhE3IAAzIyAH0AAAAFZAAgAAAAAOBi/GAYFcstMSJPgp3VkMiuuUUCrZytvqYaU8dwm8v2BXMAIAAAAACEZSZVyD3pKzGlbdwlYmWQhHHTV5SnNLknl2Gw8IaUTQVjACAAAAAAriBex2kK//RPhyVpCYJDBng4l5w8jD3m8BF7dVAP0p8AAzIzAH0AAAAFZAAgAAAAAIQuup+YGfH3mflzWopN8J1X8o8a0d9CSGIvrA5HOzraBXMAIAAAAADYvNLURXsC2ITMqK14LABQBI+hZZ5wNf24JMcKLW+84AVjACAAAAAAGeUzdG2kQrx5XypXJezZmPVzMYuqYZw7Bhbl4EPT0SMAAzI0AH0AAAAFZAAgAAAAAKsh0ADyOnVocFrOrf6MpTrNvAj8iaiE923DPryu124gBXMAIAAAAADg24a8NVE1GyScc6tmnTbmu5ulzO+896fE92lN08MeswVjACAAAAAAbO+DEBY3STVMQN7CbxmHDUBYrDR+80e797u/VmiK4vcAAzI1AH0AAAAFZAAgAAAAAKkVC2Y6HtRmv72tDnPUSjJBvse7SxLqnr09/Uuj9sVVBXMAIAAAAABYNFUkH7ylPMN+Bc3HWX1e0flGYNbtJNCY9SltJCW/UAVjACAAAAAAHlE3RLKcXpXto7Mr8nRgzEsmhjfGh4vcgPxashCSMg4AAzI2AH0AAAAFZAAgAAAAADDggcwcb/Yn1Kk39sOHsv7BO/MfP3m/AJzjGH506Wf9BXMAIAAAAAAYZIsdjICS0+BDyRUPnrSAZfPrwtuMaEDEn0/ijLNQmAVjACAAAAAA1c/sy3255NofBQrnBNSmVkSzMgsGPaaOUJShddVrnuQAAzI3AH0AAAAFZAAgAAAAAEWY7dEUOJBgjOoWVht1wLehsWAzB3rSOBtLgTuM2HC8BXMAIAAAAAAAoswiHRROurjwUW8u8D5EUT+67yvrgpB/j6PzBDAfVwVjACAAAAAALBvQumG8m7/bzJjGWN2cHSAncdN8jMtOSmEhEhGom24AAzI4AH0AAAAFZAAgAAAAAPZaapeAUUFPA7JTCMOWHJa9lnPFh0/gXfAPjA1ezm4ZBXMAIAAAAACmJvLY2nivw7/b3DOKH/X7bBXjJwoowqb1GtEFO3OYgAVjACAAAAAAGCDHuUJusGHKQ+r9nrFChmUUsRcqZKPGsRiLSk5gbFcAAzI5AH0AAAAFZAAgAAAAAK00u6jadxCZAiA+fTsPVDsnW5p5LCr4+kZZZOTDuZlfBXMAIAAAAAAote4zTEYMDgaaQbAdN8Dzv93ljPLdGjJzvnRn3KXgtQVjACAAAAAApZ6l+OrocOqgFek7WOqOP9JruTWZ+iW+5zdL3DZwzhkAAzMwAH0AAAAFZAAgAAAAAFbgabdyymiEVYYwtJSWa7lfl/oYuj/SukzJeDOR6wPVBXMAIAAAAADAFGFjS1vPbN6mQEhkDYTD6V2V23Ys9gUEUMGNvMPkaAVjACAAAAAAeICKly5Xtwmfd4JFD+5e1UWpu4V3KoRim7jeBICDs+UAAzMxAH0AAAAFZAAgAAAAABNMR6UBv2E627CqLtQ/eDYx7OEwQ7JrR4mSHFa1N8tLBXMAIAAAAAAxH4gucI4UmNVB7625C6hFSVCuIpJO3lusJlPuL8H5EQVjACAAAAAA0/uh1hrAlGGna/njCVaCqBwubxkifzF0zjCDQrIJOtUAAzMyAH0AAAAFZAAgAAAAAG8cd6WBneNunlqrQ2EmNf35W7OGObGq9WL4ePX+LUDmBXMAIAAAAAAjJ2+sX87NSis9hBsgb1QprVRnO7Bf+GObCGoUqyPE4wVjACAAAAAAAoJ4Ufdq45T9Aun5FupHlaBCIUsmUn6dXgV9KorpFikAAzMzAH0AAAAFZAAgAAAAAFWOUGkUpy8yf6gB3dio/aOfRKh7XuhvsUj48iESFJrGBXMAIAAAAAAY7sCDMcrUXvNuL6dO0m11WyijzXZvPIcOKob6IpC4PQVjACAAAAAAO/QFjczoznH95Iu0YEVMsU1GA1yxSGL8bcwSweNzAtkAAzM0AH0AAAAFZAAgAAAAAGUrIdKxOihwNmo6B+aG+Ag1qa0+iqdksHOjQj+Oy9bZBXMAIAAAAABwa5dbI2KmzBDNBTQBEkjZv4sPaeRkRNejcjdVymRFKQVjACAAAAAAUtdJucZoQvvPJiy65RonQrxBCcvtfHslpbgLbtWirCYAAzM1AH0AAAAFZAAgAAAAAOx89xV/hRk64/CkM9N2EMK6aldII0c8smdcsZ46NbP8BXMAIAAAAADBF6tfQ+7q9kTuLyuyrSnDgmrdmrXkdhl980i1KHuGHgVjACAAAAAAVc5njbLX1afpsuG662U/OBo4LanEk06lKbQtd95fswgAAzM2AH0AAAAFZAAgAAAAAMkN0L1oQWXhjwn9rAdudcYeN8/5VdCKU8cmDt7BokjsBXMAIAAAAAAT62pGXoRwExe9uvgYOI0hg5tOxilrWfoEmT0SMglWJwVjACAAAAAAhNc5ovIaxgtS856ZBfG+cAcHAz+3ewzB9C6zZoaggj4AAzM3AH0AAAAFZAAgAAAAANxfa4xCoaaB7k1C1RoH1LBhsCbN2yEq15BT9b+iqEC4BXMAIAAAAACAX9LV8Pemfw7NF0iB1/85NzM1Ef+1mUfyehacUVgobQVjACAAAAAAc0bIRNzuyc1Y0hkEmm7xV6Xp/LBlAgMq/ISCHr0Tq44AAzM4AH0AAAAFZAAgAAAAAOYIYoWkX7dGuyKfi3XssUlc7u/gWzqrR9KMkikKVdmSBXMAIAAAAABVF2OYjRTGi9Tw8XCAwZWLpX35Yl271TlNWp6N/nROhAVjACAAAAAAyGLbmHhe8eTQC8L2eDRcezUWULLZ9E8DPic7Mfp8/+4AAzM5AH0AAAAFZAAgAAAAAIy0+bXZi10QC+q7oSOLXK5Fee7VEk/qHSXukfeVIfgzBXMAIAAAAAAQ3IIV/JQCHW95AEbH5zGIHtJqyuPjWPMIZ+VmQHlxEwVjACAAAAAAD3azcNDdohU6tHO6ypT7F0rtydAYIMmLIsX6y7cXVkMAAzQwAH0AAAAFZAAgAAAAAL5SOJQ3LOhgdXJ5v086NNeAl1qonQnchObdpZJ1kHeEBXMAIAAAAAA+tEqTXODtik+ydJZSnUqXF9f18bPeze9eWtR7ExZJgQVjACAAAAAAUd8v2RN1WagYan1LbV+G81vcJKQ6HsX2GSBtnzMH7XEAAzQxAH0AAAAFZAAgAAAAAKl8zcHJRDjSjJeV/WvMxulW1zrTFtaeBy/aKKhadc6UBXMAIAAAAADBdWQl5SBIvtZZLIHszePwkO14W1mQ0izUk2Ov21cPNAVjACAAAAAAHvQLJ2X4ncjVv1BsOd/jbVouRPwf4222WlGSzPyAfnsAAzQyAH0AAAAFZAAgAAAAAFvotcNaoKnVt5CBCOPwjexFO0WGWuaIGL6H/6KSau+6BXMAIAAAAAD2y2mBN5xPu5PJoY2zcr0GnQDtHRBogA5+xzIxccE9fwVjACAAAAAA1OntPAxq1NJ4sfca+ysHcg68mj7QHwdEZQVxHMlV6x0AAzQzAH0AAAAFZAAgAAAAAPezU0/vNT4Q4YKbTbaeHqcwNLT+IjW/Y9QFpIooihjPBXMAIAAAAACj2x4O4rHter8ZnTws5LAP9jJ/6kk9C/V3vL50LoFZHAVjACAAAAAAlZd3bPMUXRhTwLWflrQuKIwtauTswenUiaDi2ibHYYYAAzQ0AH0AAAAFZAAgAAAAAMqpayM2XotEFmm0gwQd9rIzApy0X+7HfOhNk6VU7F5lBXMAIAAAAACJR9+q5T9qFHXFNgGbZnPubG8rkO6cwWhzITQTmd6VgwVjACAAAAAAEEOCUo+ihRGl1kuHlabWBWUFyJPAXSXzpQB4od57cMEAAzQ1AH0AAAAFZAAgAAAAANCeyW+3oebaQk+aqxNVhAcT/BZ5nhsTVdKS3tMrLSvWBXMAIAAAAADxRFMDhkyuEc++WnndMfoUMLNL7T7rWoeblcrpSI6soQVjACAAAAAA1KYQISxmBcGmgDMAjBpTcfQr/oci60Kf4QtEYEXPKSQAAzQ2AH0AAAAFZAAgAAAAAIbo5YBTxXM7HQhl7UP9NNgpPGFkBx871r1B65G47+K8BXMAIAAAAAC21dJSxnEhnxO5gzN5/34BL4von45e1meW92qowzb8fQVjACAAAAAAisxsskU/9ykphpSjB6bMMY+6Tbt6wpjhE2dg1IULAgYAAzQ3AH0AAAAFZAAgAAAAABm/6pF96j26Jm7z5KkY1y33zcAEXLx2n0DwC03bs/ixBXMAIAAAAAD01OMvTZI/mqMgxIhA5nLs068mW+GKl3OW3ilf2D8+LgVjACAAAAAAnPa8PTfcaSSAdzNAC54IMTicbShbtt/cSnFHz7u7g8wAAzQ4AH0AAAAFZAAgAAAAAJ/D3+17gaQdkBqkL2wMwccdmCaVOtxzIkM8VyI4xI5zBXMAIAAAAAAggLVmkc5u+YzBR+oNE+XgLVp64fC6MzUb/Ilu/Jsw0AVjACAAAAAAp5qCK8p0eTvAAUQ8fIOGyb2YM1YflQ8H6ggiWZ9vNI4AAzQ5AH0AAAAFZAAgAAAAAJMRyUW50oaTzspS6A3TUoXyC3gNYQoShUGPakMmeVZrBXMAIAAAAACona2Pqwt4U2PmFrtmu37jB9kQ/12okyAVtYa8TQkDiQVjACAAAAAAx/LOuDwvpaPFJeKLowZW/4q7SUsLtdldB27zc4//alEAAzUwAH0AAAAFZAAgAAAAAByuYl8dBvfaZ0LO/81JW4hYypeNmvLMaxsIdvqMPrWoBXMAIAAAAABNddwobOUJzm9HOUD8BMZJqkNCUCqstHZkC76FIdNg9AVjACAAAAAA4SEPY+qEZ2dCu/9485IEVybiM3Z7szXYM+izxklNm14AAzUxAH0AAAAFZAAgAAAAAHEzLtfmF/sBcYPPdj8867VmmQyU1xK9I/3Y0478azvABXMAIAAAAAAcmyFajZPnBTbO+oLInNwlApBocUekKkxz2hYFeSlQ+gVjACAAAAAA15ibZoBP1/pP27BDIfizDYNRDIpOmj8Ie34FvrtqjhMAAzUyAH0AAAAFZAAgAAAAAJam7JYsZe2cN20ZYm2W3v1pisNt5PLiniMzymBLWyMtBXMAIAAAAABxCsKVMZMTn3n+R2L7pVz5nW804r8HcK0mCBw3jUXKXAVjACAAAAAAElCgoMRrtlONqnyosjIpiz4mQTLq3+b/JUCVEq4QFiAAAzUzAH0AAAAFZAAgAAAAAMXrXx0saZ+5gORmwM2FLuZG6iuO2YS+1IGPoAtDKoKBBXMAIAAAAADIQsxCr8CfFKaBcx8kIeSywnGh7JHjKRJ9vJd9x79y7wVjACAAAAAAPzOTJ088k9QdGUpZ1ubUdkw3pTGkNF8bui4a9wqeo08AAzU0AH0AAAAFZAAgAAAAACbzcUD3INSnCRspOKF7ubne74OK9L0FTZvi9Ay0JVDYBXMAIAAAAADPebVQH8Btk9rhBIoUOdSAdpPvz7qIY4UC2i6IGisSAQVjACAAAAAAe4zSAgMQPjtz2t1DgxW1XOlV+fnNMXt6iQ7iV7DgQz4AAzU1AH0AAAAFZAAgAAAAACUc2CtD1MK/UTxtv+8iA9FoHEyTwdl43HKeSwDw2Lp5BXMAIAAAAACCIduIdw65bQMzRYRfjBJj62bc69T4QqH4QoWanwlvowVjACAAAAAA+i6aTnkoixxSOxDgQM/aWTylOy1m0ViCDU5asOM5ieYAAzU2AH0AAAAFZAAgAAAAAHSaHWs/dnmI9sc7nB50VB2Bzs0kHapMHCQdyVEYY30TBXMAIAAAAACkV22lhEjWv/9/DubfHBAcwJggKI5mIbSK5L2nyqloqQVjACAAAAAA1I5pLbnlFf/EfJlhE0RFIioDjzKrWNh4TO8H/ksrbMcAAzU3AH0AAAAFZAAgAAAAAAL8jhNBG0KXXZhmZ0bPXtfgapJCB/AI+BEHB0eZ3C75BXMAIAAAAADHx/fPa639EBmGV5quLi8IQT600ifiKSOhTDOK19DnzwVjACAAAAAANfWpWWy9iu7pgMEy2aVCggGEtJtXKQG1+3zCf8D6iEkAAzU4AH0AAAAFZAAgAAAAAAxgeclNl09H7HvzD1oLwb2YpFca5eaX90uStYXHilqKBXMAIAAAAACMU5pSxzIzWlQxHyW170Xs9EhD1hURASQk+qkx7K5Y6AVjACAAAAAA/kYlJPSFn2g1l7cy6djV/7wgnlPWphZ0IKSY8uenUF0AAzU5AH0AAAAFZAAgAAAAABmO7QD9vxWMmFjIHz13lyOeV6vHT6mYCsWxF7hb/yOjBXMAIAAAAACT9lmgkiqzuWG24afuzYiCeK9gmJqacmxAruIukd0xEAVjACAAAAAAyiZxtuOZQNSit4wFMJS3jnqLbDzyJ0OtDTKs6r0EO0cAAzYwAH0AAAAFZAAgAAAAAB89SjLtDJkqEghRGyj6aQ/2qvWLNuMROoXmzbYbCMKMBXMAIAAAAAC8sywgND+CjhVTF6HnRQeay8y9/HnVzDI42dEPah28LQVjACAAAAAAzBj8q9Ig4uhIc6rhNDVX1lII9lzfhJ0+ig8viBhdrtQAAzYxAH0AAAAFZAAgAAAAABN2alGq9Aats1mwERNGwL/fIwZSvVCe9/8XMHTFlpUpBXMAIAAAAACuDPjJgvvbBYhbLpjMiWUCsVppiYrhvR+yMysNPN8cZAVjACAAAAAAqcsLIvb3Pe/QKYB9wQ86Ye2OFSAJEIY4ve7LMM3SwGMAAzYyAH0AAAAFZAAgAAAAAL8YB6VAqGBiWD4CBv16IBscg5J7VQCTZu87n6pj+86KBXMAIAAAAAAmxm8e68geeyAdUjSMWBHzUjneVB0pG9TBXIoE6467hAVjACAAAAAA9Kd65vKIUckNPvxl/HHNPJVnFHXyErp4qibmD7BloukAAzYzAH0AAAAFZAAgAAAAAL4yLkCTV5Dmxa5toBu4JT8ge/cITAaURIOuFuOtFUkeBXMAIAAAAAAXoFNQOMGkAj7qEJP0wQafmFSXgWGeorDVbwyOxWLIsgVjACAAAAAAaFrBx0xXIryTe7V/kX+jfPHd0057x7k7MxzDAzi0RpcAAzY0AH0AAAAFZAAgAAAAAEU8DoUp46YtYjNFS9kNXwdYxQ9IW27vCTb+VcqqfnKNBXMAIAAAAADe7vBOgYReE8X78k5ARuUnv4GmzPZzg6SbConf4L2G3wVjACAAAAAAOl/tartywd/fJj5DNRsVH/ml9tJ8KkkCbKObsFe8lHcAAzY1AH0AAAAFZAAgAAAAAPa4yKTtkUtySuWo1ZQsp2QXtPb5SYqzA5vYDnS1P6c0BXMAIAAAAADKnF58R1sXlHlsHIvCBR3YWW/qk54z9CTDhZydkD1cOQVjACAAAAAAfn/jP8K3QUILngCNkydHARyBvBHIFdaJjzV0EXsFruMAAzY2AH0AAAAFZAAgAAAAAN5WJnMBmfgpuQPyonmY5X6OdRvuHw4nhsnGRnFAQ95VBXMAIAAAAACwftzu7KVV1rmGKwXtJjs3cJ1gE3apr8+N0SAg1F2cHwVjACAAAAAAf0XyQQLd/HIYaf9EeAV0o2h12K1AV5piLCpZihznBXoAAzY3AH0AAAAFZAAgAAAAACHvDsaPhoSb6DeGnKQ1QOpGYAgK82qpnqwcmzSeWaJHBXMAIAAAAABRq3C5+dOfnkAHM5Mg5hPB3O4jhwQlBgQWLA7Ph5bhgwVjACAAAAAAm2Ukk5kkQp+PDpBCCefQOqFKKZie4hINim3yvtypsEAAAzY4AH0AAAAFZAAgAAAAAOBePJvccPMJmy515KB1AkXF5Pi8NOG4V8psWy0SPRP+BXMAIAAAAAB3dOJG9xIDtEKCRzeNnPS3bFZepMj8UKBobKpSoCPqpgVjACAAAAAAnu33SngYPOtRgdJ3aBBuxWn80ti3OO6nZJcI6eh0VfQAAzY5AH0AAAAFZAAgAAAAABUvRrDQKEXLMdhnzXRdhiL6AGNs2TojPky+YVLXs+JnBXMAIAAAAAD1kYicbEEcPzD4QtuSYQQWDPq8fuUWGddpWayKn3dT9QVjACAAAAAAUc5dxcbNYY3qMO8+Xm2xis+pH9NjPLrHqHenwDEImAEAAzcwAH0AAAAFZAAgAAAAAOvSnpujeKNen4pqc2HR63C5s5oJ1Vf4CsbKoYQvkwl5BXMAIAAAAACw2+vAMdibzd2YVVNfk81yXkFZP0WLJ82JBxJmXnYE+QVjACAAAAAAnmej008JFQAgdImjk26PYvqdATjRYRufLi+vEVVwtucAAzcxAH0AAAAFZAAgAAAAAAo0xfGG7tJ3GWhgPVhW5Zn239nTD3PadShCNRc9TwdNBXMAIAAAAADZh243oOhenu0s/P/5KZLBDh9ADqKHtSWcXpO9D2sIjgVjACAAAAAAhpNHI4+aRdWHCvZfEjlgpRBz36g05wN9p/hj3NEwc7EAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ]
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDouble": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: delete
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDouble": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-FindOneAndUpdate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-FindOneAndUpdate.json
new file mode 100644
index 00000000000..59a304166bd
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-FindOneAndUpdate.json
@@ -0,0 +1,1160 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Double. FindOneAndUpdate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "findOneAndUpdate",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$gt": {
+ "$numberDouble": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDouble": {
+ "$numberDouble": "2"
+ }
+ }
+ },
+ "returnDocument": "Before"
+ },
+ "result": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "findAndModify": "default",
+ "query": {
+ "encryptedDouble": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDouble": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "findAndModify"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "HI88j1zrIsFoijIXKybr9mYubNV5uVeODyLHFH4Ueco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXVD/HSbBljko0jJcaxJ1nrzs2+pchLQqYR3vywS8SU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KhscCh+tt/pp8lxtKZQSPPUU94RvJYPKG/sjtzIa4Ws=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RISnuNrTTVNW5HnwCgQJ301pFw8DOcYrAMQIwVwjOkI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Ra5zukLh2boua0Bh74qA+mtIoixGXlsNsxiJqHtqdTI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eqr0v+NNWXWszi9ni8qH58Q6gw5x737tJvH3lPaNHO4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d42QupriWIwGrFAquXNFi0ehEuidIbHLFZtg1Sm2nN8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2azRVxaaTIJKcgY2FU012gcyP8Y05cRDpfUaMnCBaQU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3nlgkM4K/AAcHesRYYdEu24UGetHodVnVfHzw4yxZBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hqy91FNmAAac2zUaPO6eWFkx0/37rOWGrwXN+fzL0tU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "akX+fmscSDSF9pB5MPj56iaJPtohr0hfXNk/OPWsGv8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1ZvUb10Q7cN4cNLktd5yNjqgtawsYnkbeVBZV6WuY/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "otCwtuKiY4hCyXvYzXvo10OcnzZppebo38KsAlq49QM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mty8EscckeT/dhMfrPFyDbLnmMOcYRUQ3mLK4KTu6V8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tnvgLLkJINO7csREYu4dEVe1ICrBeu7OP+HdfoX3M2E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kOefsHgEVhkJ17UuP7Dxogy6sAQbzf1SFPKCj6XRlrQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F+JQ79xavpaHdJzdhvwyHbzdZJLNHAymc/+67La3gao=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NCZ9zp5rDRceENuSgAfTLEyKg0YgmXAhK0B8WSj7+Pw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wL1CJ7cYR5slx8mHq++uMdjDfkt9037lQTUztEMF56M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "txefkzTMITZE+XvvRFZ7QcgwDT/7m8jNmxRk4QBaoZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jFunW3v1tSYMyZtQQD28eEy9qqDp4Kqo7gMN29N4bfQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QMO915KUiS3X3R1bU1YoafVM2s0NeHo3EjgTA9PnGwY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nwdKJEXdilzvb7494vbuDJ+y6SrfJahza1dYIsHIWVI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vpWMX+T/VXXajFo0UbuYjtp0AEzBU0Y+lP+ih2EQ7mg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1lmzG0J1DhKDRhhq5y5Buygu4G8eV2X0t7kUY90EohM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SiKqpXqO0trwhFvBWK274hMklpCgMhNs/JY84yyn/NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7cPGPYCKPTay+ZR9Gx6oOueduOgaFrSuAXmNDpDHXdI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4THEYvAkjs2Fh7FIe5LC45P4i4N0L7ob67UOVbhp6Nk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "B+UGsChLLZR7iqnt8yq91OgmTgwiUKTJhFxY4NT0O6c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X1uYwBCsCg1H+PnKdwtBqXlt0zKEURi8bOM940GcPfk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xYOgT5l7shlNXCwHlguovmDkcEnF8dXyYlTyYrgZ8GE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vFMTZqV8bh1+gcKzTkXweMddJlgdUnwX0DWzUUaMok4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4HI0y9FrtleZxZ7M6INdNhLelrQ2Rv/+ykWCBl+tMC8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jpJ0bBE474OUkn1vUiLWumIBtYmwc7J5+LQU/nyeLQc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jQTPeXZvdxY/DjtPfYfKUArIDsf0E9MVFy2O26sv1ec=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QLLto0ExR2ZYMGqlyaMZc/hXFFTlwmgtKbiVq/xJIeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yBJNviU1nchbGbhx6InXCVRXa90sEepz1EwbYuKXu2U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jpEf0vHxrPu9gTJutNXSi2g/2Mc4WXFEN7yHonZEb7A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "E09kLFckMYwNuhggMxmPtwndyvIAx+Vl+b2CV6FP75s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "N+ue6/cLPb5NssmJCCeo18LlbKPz6r2z20AsnTKRvOo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yVQNZP8hhsvNGyDph2QP2qTNdXZTiIEVineKg+Qf33o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cSC9uI+9c5S8X+0G7amVyug1p0ZlgBsbEDYYyezBevQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1NpZGjoQzuQtekj80Rifxe9HbE08W07dfwxaFHaVn84=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5Ghuq/8l11Ug9Uf/RTwf9On3OxOwIXUcb9soiy4J7/w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0LWKaEty6ywxLFhDaAqulqfMnYc+tgPfH4apyEeKg80=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OwSthmCBtt6NIAoAh7aCbj82Yr/+9t8U7WuBQhFT3AQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "iYiyg6/1isqbMdvFPIGucu3cNM4NAZNtJhHpGZ4eM+c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "waBgs8jWuGJPIF5zCRh6OmIyfK5GCBQgTMfmKSR2wyY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1Jdtbe2BKJXPU2G9ywOrlODZ/cNYEQlKzAW3aMe1Hy4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xaLEnNUS/2ySerBpb9dN/D31t+wYcKekwTfkwtni0Mc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bIVBrOhOvr6cL55Tr24+B+CC9MiG7U6K54aAr2IXXuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6Cdq5wroGu2TEFnekuT7LhOpd/K/+PcipIljcHU9QL4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "K5l64vI4S/pLviLW6Pl0U3iQkI3ge0xg4RAHcEsyKJo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bzhuvZ0Ls22yIOX+Hz51eAHlSuDbWR/e0u4EhfdpHbc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Qv+fr6uD4o0bZRp69QJCFL6zvn3G82c7L+N1IFzj7H0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XAmISMbD3aEyQT+BQEphCKFNa0F0GDKFuhM9cGceKoQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4VLCokntMfm1AogpUnYGvhV7nllWSo3mS3hVESMy+hA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xiXNLj/CipEH63Vb5cidi8q9X47EF4f3HtJSOH7mfM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4XlCYfYBjI9XA5zOSgTiEBYcZsdwyXL+f5XtH2xUIOc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "k6DfQy7ZYJIkEly2B5hjOZznL4NcgMkllZjJLb7yq7w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZzM6gwWesa3lxbZVZthpPFs2s3GV0RZREE2zOMhBRBo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "US+jeMeeOd7J0wR0efJtq2/18lcO8YFvhT4O3DeaonQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b6iSxiI1FM9SzxuG1bHqGA1i4+3GOi0/SPW00XB4L7o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kn3LsxAVkzIZKK9I6fi0Cctr0yjXOYgaQWMCoj4hLpM=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-FindOneAndUpdate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-FindOneAndUpdate.yml
new file mode 100644
index 00000000000..0b3d39dffa0
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-FindOneAndUpdate.yml
@@ -0,0 +1,915 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDouble', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Double. FindOneAndUpdate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDouble: { $numberDouble: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDouble: { $numberDouble: "1" } }
+ - name: findOneAndUpdate
+ arguments:
+ filter: { encryptedDouble: { $gt: {$numberDouble: "0"}} }
+ update: { "$set": { "encryptedDouble": {$numberDouble: "2"}}}
+ returnDocument: Before
+ result: *doc1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDouble": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDouble": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ findAndModify: *collection_name
+ query: {
+ "encryptedDouble": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ update: { "$set": {"encryptedDouble": { $$type: "binData" }} }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDouble": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: findAndModify
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDouble": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDouble": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "HI88j1zrIsFoijIXKybr9mYubNV5uVeODyLHFH4Ueco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXVD/HSbBljko0jJcaxJ1nrzs2+pchLQqYR3vywS8SU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KhscCh+tt/pp8lxtKZQSPPUU94RvJYPKG/sjtzIa4Ws=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RISnuNrTTVNW5HnwCgQJ301pFw8DOcYrAMQIwVwjOkI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Ra5zukLh2boua0Bh74qA+mtIoixGXlsNsxiJqHtqdTI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eqr0v+NNWXWszi9ni8qH58Q6gw5x737tJvH3lPaNHO4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d42QupriWIwGrFAquXNFi0ehEuidIbHLFZtg1Sm2nN8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2azRVxaaTIJKcgY2FU012gcyP8Y05cRDpfUaMnCBaQU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3nlgkM4K/AAcHesRYYdEu24UGetHodVnVfHzw4yxZBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hqy91FNmAAac2zUaPO6eWFkx0/37rOWGrwXN+fzL0tU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "akX+fmscSDSF9pB5MPj56iaJPtohr0hfXNk/OPWsGv8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1ZvUb10Q7cN4cNLktd5yNjqgtawsYnkbeVBZV6WuY/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "otCwtuKiY4hCyXvYzXvo10OcnzZppebo38KsAlq49QM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mty8EscckeT/dhMfrPFyDbLnmMOcYRUQ3mLK4KTu6V8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tnvgLLkJINO7csREYu4dEVe1ICrBeu7OP+HdfoX3M2E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kOefsHgEVhkJ17UuP7Dxogy6sAQbzf1SFPKCj6XRlrQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F+JQ79xavpaHdJzdhvwyHbzdZJLNHAymc/+67La3gao=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NCZ9zp5rDRceENuSgAfTLEyKg0YgmXAhK0B8WSj7+Pw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wL1CJ7cYR5slx8mHq++uMdjDfkt9037lQTUztEMF56M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "txefkzTMITZE+XvvRFZ7QcgwDT/7m8jNmxRk4QBaoZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jFunW3v1tSYMyZtQQD28eEy9qqDp4Kqo7gMN29N4bfQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QMO915KUiS3X3R1bU1YoafVM2s0NeHo3EjgTA9PnGwY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nwdKJEXdilzvb7494vbuDJ+y6SrfJahza1dYIsHIWVI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vpWMX+T/VXXajFo0UbuYjtp0AEzBU0Y+lP+ih2EQ7mg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1lmzG0J1DhKDRhhq5y5Buygu4G8eV2X0t7kUY90EohM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SiKqpXqO0trwhFvBWK274hMklpCgMhNs/JY84yyn/NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7cPGPYCKPTay+ZR9Gx6oOueduOgaFrSuAXmNDpDHXdI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4THEYvAkjs2Fh7FIe5LC45P4i4N0L7ob67UOVbhp6Nk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "B+UGsChLLZR7iqnt8yq91OgmTgwiUKTJhFxY4NT0O6c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X1uYwBCsCg1H+PnKdwtBqXlt0zKEURi8bOM940GcPfk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xYOgT5l7shlNXCwHlguovmDkcEnF8dXyYlTyYrgZ8GE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vFMTZqV8bh1+gcKzTkXweMddJlgdUnwX0DWzUUaMok4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4HI0y9FrtleZxZ7M6INdNhLelrQ2Rv/+ykWCBl+tMC8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jpJ0bBE474OUkn1vUiLWumIBtYmwc7J5+LQU/nyeLQc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jQTPeXZvdxY/DjtPfYfKUArIDsf0E9MVFy2O26sv1ec=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QLLto0ExR2ZYMGqlyaMZc/hXFFTlwmgtKbiVq/xJIeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yBJNviU1nchbGbhx6InXCVRXa90sEepz1EwbYuKXu2U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jpEf0vHxrPu9gTJutNXSi2g/2Mc4WXFEN7yHonZEb7A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "E09kLFckMYwNuhggMxmPtwndyvIAx+Vl+b2CV6FP75s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "N+ue6/cLPb5NssmJCCeo18LlbKPz6r2z20AsnTKRvOo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yVQNZP8hhsvNGyDph2QP2qTNdXZTiIEVineKg+Qf33o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cSC9uI+9c5S8X+0G7amVyug1p0ZlgBsbEDYYyezBevQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1NpZGjoQzuQtekj80Rifxe9HbE08W07dfwxaFHaVn84=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5Ghuq/8l11Ug9Uf/RTwf9On3OxOwIXUcb9soiy4J7/w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0LWKaEty6ywxLFhDaAqulqfMnYc+tgPfH4apyEeKg80=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OwSthmCBtt6NIAoAh7aCbj82Yr/+9t8U7WuBQhFT3AQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "iYiyg6/1isqbMdvFPIGucu3cNM4NAZNtJhHpGZ4eM+c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "waBgs8jWuGJPIF5zCRh6OmIyfK5GCBQgTMfmKSR2wyY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1Jdtbe2BKJXPU2G9ywOrlODZ/cNYEQlKzAW3aMe1Hy4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xaLEnNUS/2ySerBpb9dN/D31t+wYcKekwTfkwtni0Mc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bIVBrOhOvr6cL55Tr24+B+CC9MiG7U6K54aAr2IXXuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6Cdq5wroGu2TEFnekuT7LhOpd/K/+PcipIljcHU9QL4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "K5l64vI4S/pLviLW6Pl0U3iQkI3ge0xg4RAHcEsyKJo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bzhuvZ0Ls22yIOX+Hz51eAHlSuDbWR/e0u4EhfdpHbc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Qv+fr6uD4o0bZRp69QJCFL6zvn3G82c7L+N1IFzj7H0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XAmISMbD3aEyQT+BQEphCKFNa0F0GDKFuhM9cGceKoQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4VLCokntMfm1AogpUnYGvhV7nllWSo3mS3hVESMy+hA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xiXNLj/CipEH63Vb5cidi8q9X47EF4f3HtJSOH7mfM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4XlCYfYBjI9XA5zOSgTiEBYcZsdwyXL+f5XtH2xUIOc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "k6DfQy7ZYJIkEly2B5hjOZznL4NcgMkllZjJLb7yq7w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZzM6gwWesa3lxbZVZthpPFs2s3GV0RZREE2zOMhBRBo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "US+jeMeeOd7J0wR0efJtq2/18lcO8YFvhT4O3DeaonQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b6iSxiI1FM9SzxuG1bHqGA1i4+3GOi0/SPW00XB4L7o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kn3LsxAVkzIZKK9I6fi0Cctr0yjXOYgaQWMCoj4hLpM=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-InsertFind.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-InsertFind.json
new file mode 100644
index 00000000000..634230eacad
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-InsertFind.json
@@ -0,0 +1,1129 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Double. Insert and Find.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$gt": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "default",
+ "filter": {
+ "encryptedDouble": {
+ "$gt": {
+ "$binary": {
+ "base64": "Cq8kAAADcGF5bG9hZAB/JAAABGcAQyQAAAMwAH0AAAAFZAAgAAAAAHgYoMGjEE6fAlAhICv0+doHcVX8CmMVxyq7+jlyGrvmBXMAIAAAAAC/5MQZgTHuIr/O5Z3mXPvqrom5JTQ8IeSpQGhO9sB+8gVjACAAAAAAPMgD8Rqnd94atKnMyPjlTwthUQ710MKJVqgtwNXLFWwAAzEAfQAAAAVkACAAAAAA2kiWNvEc4zunJ1jzvuClFC9hjZMYruKCqAaxq+oY8EAFcwAgAAAAACofIS72Cm6s866UCk+evTH3CvKBj/uZd72sAL608rzTBWMAIAAAAAB7NkTFgsBuPIyxW5KtYZD4uxdgRynoAUwA2RDj3qZNdwADMgB9AAAABWQAIAAAAABkfoBGmU3hjYBvQbjNW19kfXneBQsQQPRfUL3UAwI2cAVzACAAAAAAUpK2BUOqX/DGdX5YJniEZMWkofxHqeAbXceEGJxhp8AFYwAgAAAAAENNdd+fMV7VQzshj6RdvsxqDHYkPDxggdUHw3JbmFBeAAMzAH0AAAAFZAAgAAAAAFNprhQ3ZwIcYbuzLolAT5n/vc14P9kUUQComDu6eFyKBXMAIAAAAAAcx9z9pk32YbPV/sfPZl9ALIEVsqoLXgqWLVK/tP+heAVjACAAAAAA3eqduo9CWE5BePqBq7KCh5++QqXnyjCwybB15Zoeiu4AAzQAfQAAAAVkACAAAAAAODI+pB2pCuB+YmNEUAgtMfNdt3DmSkrJ96gRzLphgb8FcwAgAAAAAAT7dewFDxUDECQ3zVq75/cUN4IP+zsqhkP5+czUwlJIBWMAIAAAAABYcCJA2jocGQiF/vZ9VDEktoK015OqfY64yZhmNPs9GQADNQB9AAAABWQAIAAAAACNAk+yTZ4Ewk1EnotQK8O3h1gg9I7pr9q2+4po1iJVgAVzACAAAAAAUj/LesmtEsgqYVzMJ67umVA11hJTdDXwbxDoQ71vWyUFYwAgAAAAAG32XaKjEO9YTSLMnDR5eiaUpgBQz0n4M3VpBqhWTaEnAAM2AH0AAAAFZAAgAAAAAD/FIrGYFDjyYmVb7oTMVwweWP7A6F9LnyIuNO4MjBnXBXMAIAAAAACIZgJCQRZu7NhuNMyOqCn1tf+DfU1qm10TPCfj5JYV3wVjACAAAAAAZCaO06/DjOBjNrTxB8jdxM7X4XvNu9QTa2Y00kZJwgEAAzcAfQAAAAVkACAAAAAAciRW40ORJLVwchOEpz87Svb+5toAFM6LxDWv928ECwQFcwAgAAAAAN0dipyESIkszfjRzdDi8kAGaa2Hf4wrPAtiWwboZLuxBWMAIAAAAADhvKHhF7zfNRnG8QfiIlKycV6L6iGxbGNKkHligA9rAgADOAB9AAAABWQAIAAAAACZqAyCzYQupJ95mrBJX54yIz9VY7I0WrxpNYElCI4dTQVzACAAAAAA/eyJb6d1xfE+jJlVXMTD3HS/NEYENPVKAuj56Dr2dSEFYwAgAAAAAMfcJKj77c6y/RBQ5hb5LSNdvbYvCAHR59KLnbmxj1gAAAM5AH0AAAAFZAAgAAAAAI5bm3YO0Xgf0VT+qjVTTfvckecM3Cwqj7DTKZXf8/NXBXMAIAAAAAD/m+h8fBhWaHm6Ykuz0WX1xL4Eme3ErLObyEVJf8NCywVjACAAAAAAiGdTXD22l1zDxHeF4NXUTiBnNTsdpzJRwM6riTPuOogAAzEwAH0AAAAFZAAgAAAAANqo4+p6qdtCzcB4BX1wQ6llU7eFBnuu4MtZwp4B6mDlBXMAIAAAAAAGiz+VaukMZ+6IH4jtn4KWWdKK4/W+O+gRioQDrfzpMgVjACAAAAAAl/wlBjSJW/hKkll8HSBCGw4Ce1pJ5rZuhVE09hKq4jQAAzExAH0AAAAFZAAgAAAAAPrFXmHP2Y4YAm7b/aqsdn/DPoDkv7B8egWkfe23XsM1BXMAIAAAAAAGhwpKAr7skeqHm3oseSbO7qKNhmYsuUrECBxJ5k+D2AVjACAAAAAAKSsxERy2OBhb5MiH9/H2BET2oeU6yVihiAoWi/16FroAAzEyAH0AAAAFZAAgAAAAABzjYxwAjXxXc0Uxv18rH8I3my0Aguow0kTwKyxbrm+cBXMAIAAAAADVbqJVr6IdokuhXkEtXF0C2gINLiAjMVN20lE20Vmp2QVjACAAAAAACJ+VAwl9X88mjC76yzkWeL4K6AamNYjbNkpS9B6fQE4AAzEzAH0AAAAFZAAgAAAAAFMm2feF2fFCm/UC6AfIyepX/xJDSmnnolQIBnHcPmb5BXMAIAAAAABLI11kFrQoaNVZFmq/38aRNImPOjdJh0Lo6irI8M/AaAVjACAAAAAAZFgYh4nV8YN+/AAqe/QhKDkNBPg8KraCG7y3bOzhPV4AAzE0AH0AAAAFZAAgAAAAAJvXB3KyNiNtQko4SSzo/9b2qmM2zU9CQTTDfLSBWMgRBXMAIAAAAAAvjuVP7KsLRDeqVqRziTKpBrjVyqKiIbO9Gw8Wl2wFTAVjACAAAAAARuBn3JdQ8so7Gy0XVH0CtlvtRoJWhSrJP6eRIqbyWh8AAzE1AH0AAAAFZAAgAAAAAPGdcxDiid8z8XYnfdDivNMYVPgBKdGOUw6UStU+48CdBXMAIAAAAAARj6g1Ap0eEfuCZ4X2TsEw+Djrhto3fA5nLwPaY0vCTgVjACAAAAAATxLY6SkcLPaoOBJpQsggEqoxgJgiY9seP3fBQM05PckAAzE2AH0AAAAFZAAgAAAAAP5rGPrYGt3aKob5f/ldP0qrW7bmWvqnKY4QwdDWz400BXMAIAAAAADTQkW2ymaaf/bhteOOGmSrIR97bAnJx+yN3yMj1bTeewVjACAAAAAA6O+wIMt3xMITuCxVrqOCNBPX5F122G+/Is+EYkzUvVYAAzE3AH0AAAAFZAAgAAAAAAlz6wJze5UkIxKpJOZFGCOf3v2KByWyI6NB6JM9wNcBBXMAIAAAAABUC7P/neUIHHoZtq0jFVBHY75tSFYr1Y5S16YN5XxC1QVjACAAAAAANv97jMd9JmZ7lMeCzK7jaZHZYsZJNl6N9g9WXzd2om0AAzE4AH0AAAAFZAAgAAAAAFJ8AtHcjia/9Y5pLEc3qVgH5xKiXw12G9Kn2A1EY8McBXMAIAAAAAAxe7Bdw7eUSBk/oAawa7uicTEDgXLymRNhBy1LAxhDvwVjACAAAAAAtOUZ2NeUWwESpq95O92dhqYBt8RtFnjT43E7k9mQF3oAAzE5AH0AAAAFZAAgAAAAAO8uwQUaKFb6vqR3Sv3Wn4QAonC2exOC9lGG1juqP5DtBXMAIAAAAABZf1KyJgQg8/Rf5c02DgDK2aQu0rNCOvaL60ohDHyY+gVjACAAAAAA5nAWj1Ek8p0MLYZEB3yoVFDfBYZ+/ZpIo71u+W9hprcAAzIwAH0AAAAFZAAgAAAAAE8YtqyRsGCeiR6hhiyisR/hccmK4nZqIMzO4lUBmEFzBXMAIAAAAAC1UYOSKqAeG1UJiKjWFVskRhuFKpj9Ezy+lICZvFlN5AVjACAAAAAA37oP30mTzVftI2FL9Uwyls/jqLqbmRDQk7p7nlx44uYAAzIxAH0AAAAFZAAgAAAAAPhCrMausDx1QUIEqp9rUdRKyM6a9AAx7jQ3ILIu8wNIBXMAIAAAAACmH8lotGCiF2q9VQxhsS+7LAZv79VUAsOUALaGxE/EpAVjACAAAAAAhVIkl8p19VZ0gpg32s++Jda3qsVSVB5tV4CKrtjhE3IAAzIyAH0AAAAFZAAgAAAAAOBi/GAYFcstMSJPgp3VkMiuuUUCrZytvqYaU8dwm8v2BXMAIAAAAACEZSZVyD3pKzGlbdwlYmWQhHHTV5SnNLknl2Gw8IaUTQVjACAAAAAAriBex2kK//RPhyVpCYJDBng4l5w8jD3m8BF7dVAP0p8AAzIzAH0AAAAFZAAgAAAAAIQuup+YGfH3mflzWopN8J1X8o8a0d9CSGIvrA5HOzraBXMAIAAAAADYvNLURXsC2ITMqK14LABQBI+hZZ5wNf24JMcKLW+84AVjACAAAAAAGeUzdG2kQrx5XypXJezZmPVzMYuqYZw7Bhbl4EPT0SMAAzI0AH0AAAAFZAAgAAAAAKsh0ADyOnVocFrOrf6MpTrNvAj8iaiE923DPryu124gBXMAIAAAAADg24a8NVE1GyScc6tmnTbmu5ulzO+896fE92lN08MeswVjACAAAAAAbO+DEBY3STVMQN7CbxmHDUBYrDR+80e797u/VmiK4vcAAzI1AH0AAAAFZAAgAAAAAKkVC2Y6HtRmv72tDnPUSjJBvse7SxLqnr09/Uuj9sVVBXMAIAAAAABYNFUkH7ylPMN+Bc3HWX1e0flGYNbtJNCY9SltJCW/UAVjACAAAAAAHlE3RLKcXpXto7Mr8nRgzEsmhjfGh4vcgPxashCSMg4AAzI2AH0AAAAFZAAgAAAAADDggcwcb/Yn1Kk39sOHsv7BO/MfP3m/AJzjGH506Wf9BXMAIAAAAAAYZIsdjICS0+BDyRUPnrSAZfPrwtuMaEDEn0/ijLNQmAVjACAAAAAA1c/sy3255NofBQrnBNSmVkSzMgsGPaaOUJShddVrnuQAAzI3AH0AAAAFZAAgAAAAAEWY7dEUOJBgjOoWVht1wLehsWAzB3rSOBtLgTuM2HC8BXMAIAAAAAAAoswiHRROurjwUW8u8D5EUT+67yvrgpB/j6PzBDAfVwVjACAAAAAALBvQumG8m7/bzJjGWN2cHSAncdN8jMtOSmEhEhGom24AAzI4AH0AAAAFZAAgAAAAAPZaapeAUUFPA7JTCMOWHJa9lnPFh0/gXfAPjA1ezm4ZBXMAIAAAAACmJvLY2nivw7/b3DOKH/X7bBXjJwoowqb1GtEFO3OYgAVjACAAAAAAGCDHuUJusGHKQ+r9nrFChmUUsRcqZKPGsRiLSk5gbFcAAzI5AH0AAAAFZAAgAAAAAK00u6jadxCZAiA+fTsPVDsnW5p5LCr4+kZZZOTDuZlfBXMAIAAAAAAote4zTEYMDgaaQbAdN8Dzv93ljPLdGjJzvnRn3KXgtQVjACAAAAAApZ6l+OrocOqgFek7WOqOP9JruTWZ+iW+5zdL3DZwzhkAAzMwAH0AAAAFZAAgAAAAAFbgabdyymiEVYYwtJSWa7lfl/oYuj/SukzJeDOR6wPVBXMAIAAAAADAFGFjS1vPbN6mQEhkDYTD6V2V23Ys9gUEUMGNvMPkaAVjACAAAAAAeICKly5Xtwmfd4JFD+5e1UWpu4V3KoRim7jeBICDs+UAAzMxAH0AAAAFZAAgAAAAABNMR6UBv2E627CqLtQ/eDYx7OEwQ7JrR4mSHFa1N8tLBXMAIAAAAAAxH4gucI4UmNVB7625C6hFSVCuIpJO3lusJlPuL8H5EQVjACAAAAAA0/uh1hrAlGGna/njCVaCqBwubxkifzF0zjCDQrIJOtUAAzMyAH0AAAAFZAAgAAAAAG8cd6WBneNunlqrQ2EmNf35W7OGObGq9WL4ePX+LUDmBXMAIAAAAAAjJ2+sX87NSis9hBsgb1QprVRnO7Bf+GObCGoUqyPE4wVjACAAAAAAAoJ4Ufdq45T9Aun5FupHlaBCIUsmUn6dXgV9KorpFikAAzMzAH0AAAAFZAAgAAAAAFWOUGkUpy8yf6gB3dio/aOfRKh7XuhvsUj48iESFJrGBXMAIAAAAAAY7sCDMcrUXvNuL6dO0m11WyijzXZvPIcOKob6IpC4PQVjACAAAAAAO/QFjczoznH95Iu0YEVMsU1GA1yxSGL8bcwSweNzAtkAAzM0AH0AAAAFZAAgAAAAAGUrIdKxOihwNmo6B+aG+Ag1qa0+iqdksHOjQj+Oy9bZBXMAIAAAAABwa5dbI2KmzBDNBTQBEkjZv4sPaeRkRNejcjdVymRFKQVjACAAAAAAUtdJucZoQvvPJiy65RonQrxBCcvtfHslpbgLbtWirCYAAzM1AH0AAAAFZAAgAAAAAOx89xV/hRk64/CkM9N2EMK6aldII0c8smdcsZ46NbP8BXMAIAAAAADBF6tfQ+7q9kTuLyuyrSnDgmrdmrXkdhl980i1KHuGHgVjACAAAAAAVc5njbLX1afpsuG662U/OBo4LanEk06lKbQtd95fswgAAzM2AH0AAAAFZAAgAAAAAMkN0L1oQWXhjwn9rAdudcYeN8/5VdCKU8cmDt7BokjsBXMAIAAAAAAT62pGXoRwExe9uvgYOI0hg5tOxilrWfoEmT0SMglWJwVjACAAAAAAhNc5ovIaxgtS856ZBfG+cAcHAz+3ewzB9C6zZoaggj4AAzM3AH0AAAAFZAAgAAAAANxfa4xCoaaB7k1C1RoH1LBhsCbN2yEq15BT9b+iqEC4BXMAIAAAAACAX9LV8Pemfw7NF0iB1/85NzM1Ef+1mUfyehacUVgobQVjACAAAAAAc0bIRNzuyc1Y0hkEmm7xV6Xp/LBlAgMq/ISCHr0Tq44AAzM4AH0AAAAFZAAgAAAAAOYIYoWkX7dGuyKfi3XssUlc7u/gWzqrR9KMkikKVdmSBXMAIAAAAABVF2OYjRTGi9Tw8XCAwZWLpX35Yl271TlNWp6N/nROhAVjACAAAAAAyGLbmHhe8eTQC8L2eDRcezUWULLZ9E8DPic7Mfp8/+4AAzM5AH0AAAAFZAAgAAAAAIy0+bXZi10QC+q7oSOLXK5Fee7VEk/qHSXukfeVIfgzBXMAIAAAAAAQ3IIV/JQCHW95AEbH5zGIHtJqyuPjWPMIZ+VmQHlxEwVjACAAAAAAD3azcNDdohU6tHO6ypT7F0rtydAYIMmLIsX6y7cXVkMAAzQwAH0AAAAFZAAgAAAAAL5SOJQ3LOhgdXJ5v086NNeAl1qonQnchObdpZJ1kHeEBXMAIAAAAAA+tEqTXODtik+ydJZSnUqXF9f18bPeze9eWtR7ExZJgQVjACAAAAAAUd8v2RN1WagYan1LbV+G81vcJKQ6HsX2GSBtnzMH7XEAAzQxAH0AAAAFZAAgAAAAAKl8zcHJRDjSjJeV/WvMxulW1zrTFtaeBy/aKKhadc6UBXMAIAAAAADBdWQl5SBIvtZZLIHszePwkO14W1mQ0izUk2Ov21cPNAVjACAAAAAAHvQLJ2X4ncjVv1BsOd/jbVouRPwf4222WlGSzPyAfnsAAzQyAH0AAAAFZAAgAAAAAFvotcNaoKnVt5CBCOPwjexFO0WGWuaIGL6H/6KSau+6BXMAIAAAAAD2y2mBN5xPu5PJoY2zcr0GnQDtHRBogA5+xzIxccE9fwVjACAAAAAA1OntPAxq1NJ4sfca+ysHcg68mj7QHwdEZQVxHMlV6x0AAzQzAH0AAAAFZAAgAAAAAPezU0/vNT4Q4YKbTbaeHqcwNLT+IjW/Y9QFpIooihjPBXMAIAAAAACj2x4O4rHter8ZnTws5LAP9jJ/6kk9C/V3vL50LoFZHAVjACAAAAAAlZd3bPMUXRhTwLWflrQuKIwtauTswenUiaDi2ibHYYYAAzQ0AH0AAAAFZAAgAAAAAMqpayM2XotEFmm0gwQd9rIzApy0X+7HfOhNk6VU7F5lBXMAIAAAAACJR9+q5T9qFHXFNgGbZnPubG8rkO6cwWhzITQTmd6VgwVjACAAAAAAEEOCUo+ihRGl1kuHlabWBWUFyJPAXSXzpQB4od57cMEAAzQ1AH0AAAAFZAAgAAAAANCeyW+3oebaQk+aqxNVhAcT/BZ5nhsTVdKS3tMrLSvWBXMAIAAAAADxRFMDhkyuEc++WnndMfoUMLNL7T7rWoeblcrpSI6soQVjACAAAAAA1KYQISxmBcGmgDMAjBpTcfQr/oci60Kf4QtEYEXPKSQAAzQ2AH0AAAAFZAAgAAAAAIbo5YBTxXM7HQhl7UP9NNgpPGFkBx871r1B65G47+K8BXMAIAAAAAC21dJSxnEhnxO5gzN5/34BL4von45e1meW92qowzb8fQVjACAAAAAAisxsskU/9ykphpSjB6bMMY+6Tbt6wpjhE2dg1IULAgYAAzQ3AH0AAAAFZAAgAAAAABm/6pF96j26Jm7z5KkY1y33zcAEXLx2n0DwC03bs/ixBXMAIAAAAAD01OMvTZI/mqMgxIhA5nLs068mW+GKl3OW3ilf2D8+LgVjACAAAAAAnPa8PTfcaSSAdzNAC54IMTicbShbtt/cSnFHz7u7g8wAAzQ4AH0AAAAFZAAgAAAAAJ/D3+17gaQdkBqkL2wMwccdmCaVOtxzIkM8VyI4xI5zBXMAIAAAAAAggLVmkc5u+YzBR+oNE+XgLVp64fC6MzUb/Ilu/Jsw0AVjACAAAAAAp5qCK8p0eTvAAUQ8fIOGyb2YM1YflQ8H6ggiWZ9vNI4AAzQ5AH0AAAAFZAAgAAAAAJMRyUW50oaTzspS6A3TUoXyC3gNYQoShUGPakMmeVZrBXMAIAAAAACona2Pqwt4U2PmFrtmu37jB9kQ/12okyAVtYa8TQkDiQVjACAAAAAAx/LOuDwvpaPFJeKLowZW/4q7SUsLtdldB27zc4//alEAAzUwAH0AAAAFZAAgAAAAAByuYl8dBvfaZ0LO/81JW4hYypeNmvLMaxsIdvqMPrWoBXMAIAAAAABNddwobOUJzm9HOUD8BMZJqkNCUCqstHZkC76FIdNg9AVjACAAAAAA4SEPY+qEZ2dCu/9485IEVybiM3Z7szXYM+izxklNm14AAzUxAH0AAAAFZAAgAAAAAHEzLtfmF/sBcYPPdj8867VmmQyU1xK9I/3Y0478azvABXMAIAAAAAAcmyFajZPnBTbO+oLInNwlApBocUekKkxz2hYFeSlQ+gVjACAAAAAA15ibZoBP1/pP27BDIfizDYNRDIpOmj8Ie34FvrtqjhMAAzUyAH0AAAAFZAAgAAAAAJam7JYsZe2cN20ZYm2W3v1pisNt5PLiniMzymBLWyMtBXMAIAAAAABxCsKVMZMTn3n+R2L7pVz5nW804r8HcK0mCBw3jUXKXAVjACAAAAAAElCgoMRrtlONqnyosjIpiz4mQTLq3+b/JUCVEq4QFiAAAzUzAH0AAAAFZAAgAAAAAMXrXx0saZ+5gORmwM2FLuZG6iuO2YS+1IGPoAtDKoKBBXMAIAAAAADIQsxCr8CfFKaBcx8kIeSywnGh7JHjKRJ9vJd9x79y7wVjACAAAAAAPzOTJ088k9QdGUpZ1ubUdkw3pTGkNF8bui4a9wqeo08AAzU0AH0AAAAFZAAgAAAAACbzcUD3INSnCRspOKF7ubne74OK9L0FTZvi9Ay0JVDYBXMAIAAAAADPebVQH8Btk9rhBIoUOdSAdpPvz7qIY4UC2i6IGisSAQVjACAAAAAAe4zSAgMQPjtz2t1DgxW1XOlV+fnNMXt6iQ7iV7DgQz4AAzU1AH0AAAAFZAAgAAAAACUc2CtD1MK/UTxtv+8iA9FoHEyTwdl43HKeSwDw2Lp5BXMAIAAAAACCIduIdw65bQMzRYRfjBJj62bc69T4QqH4QoWanwlvowVjACAAAAAA+i6aTnkoixxSOxDgQM/aWTylOy1m0ViCDU5asOM5ieYAAzU2AH0AAAAFZAAgAAAAAHSaHWs/dnmI9sc7nB50VB2Bzs0kHapMHCQdyVEYY30TBXMAIAAAAACkV22lhEjWv/9/DubfHBAcwJggKI5mIbSK5L2nyqloqQVjACAAAAAA1I5pLbnlFf/EfJlhE0RFIioDjzKrWNh4TO8H/ksrbMcAAzU3AH0AAAAFZAAgAAAAAAL8jhNBG0KXXZhmZ0bPXtfgapJCB/AI+BEHB0eZ3C75BXMAIAAAAADHx/fPa639EBmGV5quLi8IQT600ifiKSOhTDOK19DnzwVjACAAAAAANfWpWWy9iu7pgMEy2aVCggGEtJtXKQG1+3zCf8D6iEkAAzU4AH0AAAAFZAAgAAAAAAxgeclNl09H7HvzD1oLwb2YpFca5eaX90uStYXHilqKBXMAIAAAAACMU5pSxzIzWlQxHyW170Xs9EhD1hURASQk+qkx7K5Y6AVjACAAAAAA/kYlJPSFn2g1l7cy6djV/7wgnlPWphZ0IKSY8uenUF0AAzU5AH0AAAAFZAAgAAAAABmO7QD9vxWMmFjIHz13lyOeV6vHT6mYCsWxF7hb/yOjBXMAIAAAAACT9lmgkiqzuWG24afuzYiCeK9gmJqacmxAruIukd0xEAVjACAAAAAAyiZxtuOZQNSit4wFMJS3jnqLbDzyJ0OtDTKs6r0EO0cAAzYwAH0AAAAFZAAgAAAAAB89SjLtDJkqEghRGyj6aQ/2qvWLNuMROoXmzbYbCMKMBXMAIAAAAAC8sywgND+CjhVTF6HnRQeay8y9/HnVzDI42dEPah28LQVjACAAAAAAzBj8q9Ig4uhIc6rhNDVX1lII9lzfhJ0+ig8viBhdrtQAAzYxAH0AAAAFZAAgAAAAABN2alGq9Aats1mwERNGwL/fIwZSvVCe9/8XMHTFlpUpBXMAIAAAAACuDPjJgvvbBYhbLpjMiWUCsVppiYrhvR+yMysNPN8cZAVjACAAAAAAqcsLIvb3Pe/QKYB9wQ86Ye2OFSAJEIY4ve7LMM3SwGMAAzYyAH0AAAAFZAAgAAAAAL8YB6VAqGBiWD4CBv16IBscg5J7VQCTZu87n6pj+86KBXMAIAAAAAAmxm8e68geeyAdUjSMWBHzUjneVB0pG9TBXIoE6467hAVjACAAAAAA9Kd65vKIUckNPvxl/HHNPJVnFHXyErp4qibmD7BloukAAzYzAH0AAAAFZAAgAAAAAL4yLkCTV5Dmxa5toBu4JT8ge/cITAaURIOuFuOtFUkeBXMAIAAAAAAXoFNQOMGkAj7qEJP0wQafmFSXgWGeorDVbwyOxWLIsgVjACAAAAAAaFrBx0xXIryTe7V/kX+jfPHd0057x7k7MxzDAzi0RpcAAzY0AH0AAAAFZAAgAAAAAEU8DoUp46YtYjNFS9kNXwdYxQ9IW27vCTb+VcqqfnKNBXMAIAAAAADe7vBOgYReE8X78k5ARuUnv4GmzPZzg6SbConf4L2G3wVjACAAAAAAOl/tartywd/fJj5DNRsVH/ml9tJ8KkkCbKObsFe8lHcAAzY1AH0AAAAFZAAgAAAAAPa4yKTtkUtySuWo1ZQsp2QXtPb5SYqzA5vYDnS1P6c0BXMAIAAAAADKnF58R1sXlHlsHIvCBR3YWW/qk54z9CTDhZydkD1cOQVjACAAAAAAfn/jP8K3QUILngCNkydHARyBvBHIFdaJjzV0EXsFruMAAzY2AH0AAAAFZAAgAAAAAN5WJnMBmfgpuQPyonmY5X6OdRvuHw4nhsnGRnFAQ95VBXMAIAAAAACwftzu7KVV1rmGKwXtJjs3cJ1gE3apr8+N0SAg1F2cHwVjACAAAAAAf0XyQQLd/HIYaf9EeAV0o2h12K1AV5piLCpZihznBXoAAzY3AH0AAAAFZAAgAAAAACHvDsaPhoSb6DeGnKQ1QOpGYAgK82qpnqwcmzSeWaJHBXMAIAAAAABRq3C5+dOfnkAHM5Mg5hPB3O4jhwQlBgQWLA7Ph5bhgwVjACAAAAAAm2Ukk5kkQp+PDpBCCefQOqFKKZie4hINim3yvtypsEAAAzY4AH0AAAAFZAAgAAAAAOBePJvccPMJmy515KB1AkXF5Pi8NOG4V8psWy0SPRP+BXMAIAAAAAB3dOJG9xIDtEKCRzeNnPS3bFZepMj8UKBobKpSoCPqpgVjACAAAAAAnu33SngYPOtRgdJ3aBBuxWn80ti3OO6nZJcI6eh0VfQAAzY5AH0AAAAFZAAgAAAAABUvRrDQKEXLMdhnzXRdhiL6AGNs2TojPky+YVLXs+JnBXMAIAAAAAD1kYicbEEcPzD4QtuSYQQWDPq8fuUWGddpWayKn3dT9QVjACAAAAAAUc5dxcbNYY3qMO8+Xm2xis+pH9NjPLrHqHenwDEImAEAAzcwAH0AAAAFZAAgAAAAAOvSnpujeKNen4pqc2HR63C5s5oJ1Vf4CsbKoYQvkwl5BXMAIAAAAACw2+vAMdibzd2YVVNfk81yXkFZP0WLJ82JBxJmXnYE+QVjACAAAAAAnmej008JFQAgdImjk26PYvqdATjRYRufLi+vEVVwtucAAzcxAH0AAAAFZAAgAAAAAAo0xfGG7tJ3GWhgPVhW5Zn239nTD3PadShCNRc9TwdNBXMAIAAAAADZh243oOhenu0s/P/5KZLBDh9ADqKHtSWcXpO9D2sIjgVjACAAAAAAhpNHI4+aRdWHCvZfEjlgpRBz36g05wN9p/hj3NEwc7EAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "find"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2FIZh/9N+NeJEQwxYIX5ikQT85xJzulBNReXk8PnG/s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I93Md7QNPGmEEGYU1+VVCqBPBEvXdqHPtTJtMOn06Yk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "GecBFQ1PemlECWZWCl7f74vmsL6eB6mzQ9n6tK6FYfs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QpjhZl+O1ORifgtCZuWAdcP6OKL7IZ2cA46v8FJcV28=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FWXI/yZ1M+2fIboeMCDMlp+I2NwPQDtoM/wWselOPYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uk26nvN/LdRLaBphiBgIZzT0sSpoO1z0RdDWRm/xrSA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hiiYSH1KZovAULc7rlmEU74wCjzDR+mm6ZnsgvFQjMw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hRzvMvWPX0sJme+wck67lwbKDFaWOa+Eyef+JSdc1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PSx5D+zqC9c295dguX4+EobT4IEzfffdfjzC8DWpB5Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QzfXQCVTjPQv2h21v95HYPq8uCsVJ2tPnjv79gAaM9M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XcGDO/dlTcEMLqwcm55UmOqK+KpBmbzZO1LIzX7GPaQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Lf+o4E7YB5ynzUPC6KTyW0lj6Cg9oLIu1Sdd1ODHctA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wAuVn02LAVo5Y+TUocvkoenFYWzpu38k0NmGZOsAjS4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yJGDtveLbbo/0HtCtiTSsvVI/0agg/U1bFaQ0yhK12o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KsEy0zgYcmkM+O/fWF9z3aJGIk22XCk+Aw96HB6JU68=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "p+AnMI5ZxdJMSIEJmXXya+FeH5yubmOdViwUO89j0Rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/jLix56jzeywBtNuGw55lCXyebQoSIhbful0hOKxKDY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fvDvSPomtJsl1S3+8/tzFCE8scHIdJY5hB9CdTEsoFo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oV5hOJzPXxfTuRdKIlF4uYEoMDuqH+G7/3qgndDr0PM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3ALwcvLj3VOfgD6OqXAO13h1ZkOv46R6+Oy6SUKh53I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gxaB9FJj0IM+InhvAjwWaex3UIZ9SAnDiUd5WHSY/l0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "66NPvDygJzKJqddfNuDuNOpvGajjFRtvhkwfUkiYmXw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1dWcQIocRAcO9XnXYqbhl83jc0RgjQpsrWd8dC27trg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "npos0Uf1DT3ztSCjPVY9EImlRnTHB1KLrvmVSqBQ/8E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TEI9qBx/tK1l1H0v1scMG8Srmtwo5VxWHADPBSlWrXk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3wUN2ypQKoj+5ASkeIK9ycxhahVxyTmGopigoUAlyYs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o/oksSnUS+nIq6ozWTbB5bJh+NoaPj8deAA23uxiWCk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KExYPruhA31e8xuSwvfUfDcyY/H2Va6taUd0k4yFgLc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/x+dNfxdd/lkx8Z8VZVfoYl7LPoaZ/iKEzZXBrAtIJc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DE4cmjFLPqZlmRomO0qQiruUBtzoCe8ZdNRcfNH92pU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M6EKNcLPw/iojAChgYUSieaBYWcbsjKtB94SaHOr8vk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+qP49lDPeyhaduTvXJgtJEqHNEYANVu9Bg3Bxz7Td9w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ruMrC2VIS+VKbJwCFb3bfkaLTju9nE+yPONV9s0M0Vo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EbjDlSB5JKnDKff4d8hOmaOwJ7B9Q6NQFisLj+DPC+0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C/yYOTB94edyqAbiQNu8/H7FoG3yRRjHDkMykz4+Mv0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CBxqrejG+qQQq2YTd6iP/06kiu2CxxzBFaZK3Ofb1CM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2ZOQ/fpho+AbDENWBZaln7wRoepIRdhyT648dr8O5cU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EghIgEPz01+myPgj8oid+PgncvobvC7vjvG3THEEQ0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "92CysZYNF8riwAMhdrIPKxfODw9p07cKQy/Snn8XmVY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VO0LeTBQmsEf7sCHzTnZwUPNTqRZ49R8V5E9XnZ/5N4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "exs8BQMJq7U6ZXYgIizT7XN+X/hOmmn4YEuzev9zgSI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qHpS4k1I+gPniNp4CA8TY8lLN36vBYmgbKMFpbYMEqg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+7lWKCKAWFw6gPZdHE6E8KIfI14/fSvtWUmllb5WLi0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YiH/US0q6679hWblFDDKNqUjCgggoU8sUCssTIF1QbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YgwkKElEubNfvXL9hJxzqQUQtHiXN/OCGxNL1MUZZlM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hZFST4INZTTuhvJlGJeMwlUAK270UCOTCDeBAnN4a7g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "24I1Zw35AuGnK3CqJhbCwYb0IPuu5sCRrM5iyeITOLc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vgD12JB4Q1S/kGPSQ1KOgp386KnG1GbM/5+60oRGcGw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+wNE+OL+CB9d4AUJdVxd56jUJCAXmmk9fapuB2TAc4g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uhQh1B2Pe4RkNw/kPEcgaLenuikKoRf1iyfZhpXdodc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eu8gjAUIp8ybO204AgeOq5v1neI1yljqy5v3I6lo1lM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7QG6oVbASBAjrnCPxzzUNnuFSFNlKhbuBafkF8pr7Is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PUS1xb2oHSDTdYltutoSSxBiJ1NjxH3l2kA4P1CZLEs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XPMh/JDC/O93gJJCwwgJDb8ssWZvRvezNmKmyn3nIfk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jWz+KGwMk/GOvFAK2rOxF3OjxeZAWfmUQ1HGJ7icw4A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o7XbW68pc6flYigf3LW4WAGUWxpeqxaQLkHUhUR9RZ8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nqR+g60+5U0okbqJadSqGgnC+j1JcP8rwMcfzOs2ACI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hz43qVK95tSfbYFtaE/8fE97XMk1RiO8XpWjwZHB80o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "noZUWlZ8M6KXU5rkifyo8/duw5IL7/fXbJvT7bNmW9k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WONVHCuPSanXDRQQ/3tmyJ0Vq+Lu/4hRaMUf0g0kSuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UEaj6vQRoIghE8Movd8AGXhtwIOXlP4cBsECIUvE5Y8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "D3n2YcO8+PB4C8brDo7kxKjF9Y844rVkdRMLTgsQkrw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C+YA0G9KjxZVaWwOMuh/dcnHnHAlYnbFrRl0IEpmsY0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rUnmbmQanxrbFPYYrwyQ53x66OSt27yAvF+s48ezKDc=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-InsertFind.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-InsertFind.yml
new file mode 100644
index 00000000000..87f3f05d0b0
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-InsertFind.yml
@@ -0,0 +1,893 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDouble', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Double. Insert and Find."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDouble: { $numberDouble: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDouble: { $numberDouble: "1" } }
+ - name: find
+ arguments:
+ filter: { encryptedDouble: { $gt: { $numberDouble: "0" } } }
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDouble": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDouble": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ find: *collection_name
+ filter:
+ "encryptedDouble": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: find
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDouble": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDouble": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2FIZh/9N+NeJEQwxYIX5ikQT85xJzulBNReXk8PnG/s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I93Md7QNPGmEEGYU1+VVCqBPBEvXdqHPtTJtMOn06Yk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "GecBFQ1PemlECWZWCl7f74vmsL6eB6mzQ9n6tK6FYfs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QpjhZl+O1ORifgtCZuWAdcP6OKL7IZ2cA46v8FJcV28=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FWXI/yZ1M+2fIboeMCDMlp+I2NwPQDtoM/wWselOPYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uk26nvN/LdRLaBphiBgIZzT0sSpoO1z0RdDWRm/xrSA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hiiYSH1KZovAULc7rlmEU74wCjzDR+mm6ZnsgvFQjMw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hRzvMvWPX0sJme+wck67lwbKDFaWOa+Eyef+JSdc1s4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PSx5D+zqC9c295dguX4+EobT4IEzfffdfjzC8DWpB5Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QzfXQCVTjPQv2h21v95HYPq8uCsVJ2tPnjv79gAaM9M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XcGDO/dlTcEMLqwcm55UmOqK+KpBmbzZO1LIzX7GPaQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Lf+o4E7YB5ynzUPC6KTyW0lj6Cg9oLIu1Sdd1ODHctA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wAuVn02LAVo5Y+TUocvkoenFYWzpu38k0NmGZOsAjS4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yJGDtveLbbo/0HtCtiTSsvVI/0agg/U1bFaQ0yhK12o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KsEy0zgYcmkM+O/fWF9z3aJGIk22XCk+Aw96HB6JU68=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "p+AnMI5ZxdJMSIEJmXXya+FeH5yubmOdViwUO89j0Rc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/jLix56jzeywBtNuGw55lCXyebQoSIhbful0hOKxKDY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fvDvSPomtJsl1S3+8/tzFCE8scHIdJY5hB9CdTEsoFo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "oV5hOJzPXxfTuRdKIlF4uYEoMDuqH+G7/3qgndDr0PM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3ALwcvLj3VOfgD6OqXAO13h1ZkOv46R6+Oy6SUKh53I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gxaB9FJj0IM+InhvAjwWaex3UIZ9SAnDiUd5WHSY/l0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "66NPvDygJzKJqddfNuDuNOpvGajjFRtvhkwfUkiYmXw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1dWcQIocRAcO9XnXYqbhl83jc0RgjQpsrWd8dC27trg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "npos0Uf1DT3ztSCjPVY9EImlRnTHB1KLrvmVSqBQ/8E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "TEI9qBx/tK1l1H0v1scMG8Srmtwo5VxWHADPBSlWrXk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3wUN2ypQKoj+5ASkeIK9ycxhahVxyTmGopigoUAlyYs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o/oksSnUS+nIq6ozWTbB5bJh+NoaPj8deAA23uxiWCk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KExYPruhA31e8xuSwvfUfDcyY/H2Va6taUd0k4yFgLc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "/x+dNfxdd/lkx8Z8VZVfoYl7LPoaZ/iKEzZXBrAtIJc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DE4cmjFLPqZlmRomO0qQiruUBtzoCe8ZdNRcfNH92pU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M6EKNcLPw/iojAChgYUSieaBYWcbsjKtB94SaHOr8vk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+qP49lDPeyhaduTvXJgtJEqHNEYANVu9Bg3Bxz7Td9w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ruMrC2VIS+VKbJwCFb3bfkaLTju9nE+yPONV9s0M0Vo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EbjDlSB5JKnDKff4d8hOmaOwJ7B9Q6NQFisLj+DPC+0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C/yYOTB94edyqAbiQNu8/H7FoG3yRRjHDkMykz4+Mv0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CBxqrejG+qQQq2YTd6iP/06kiu2CxxzBFaZK3Ofb1CM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2ZOQ/fpho+AbDENWBZaln7wRoepIRdhyT648dr8O5cU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "EghIgEPz01+myPgj8oid+PgncvobvC7vjvG3THEEQ0M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "92CysZYNF8riwAMhdrIPKxfODw9p07cKQy/Snn8XmVY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VO0LeTBQmsEf7sCHzTnZwUPNTqRZ49R8V5E9XnZ/5N4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "exs8BQMJq7U6ZXYgIizT7XN+X/hOmmn4YEuzev9zgSI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qHpS4k1I+gPniNp4CA8TY8lLN36vBYmgbKMFpbYMEqg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+7lWKCKAWFw6gPZdHE6E8KIfI14/fSvtWUmllb5WLi0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YiH/US0q6679hWblFDDKNqUjCgggoU8sUCssTIF1QbU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YgwkKElEubNfvXL9hJxzqQUQtHiXN/OCGxNL1MUZZlM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hZFST4INZTTuhvJlGJeMwlUAK270UCOTCDeBAnN4a7g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "24I1Zw35AuGnK3CqJhbCwYb0IPuu5sCRrM5iyeITOLc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vgD12JB4Q1S/kGPSQ1KOgp386KnG1GbM/5+60oRGcGw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+wNE+OL+CB9d4AUJdVxd56jUJCAXmmk9fapuB2TAc4g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uhQh1B2Pe4RkNw/kPEcgaLenuikKoRf1iyfZhpXdodc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eu8gjAUIp8ybO204AgeOq5v1neI1yljqy5v3I6lo1lM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7QG6oVbASBAjrnCPxzzUNnuFSFNlKhbuBafkF8pr7Is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "PUS1xb2oHSDTdYltutoSSxBiJ1NjxH3l2kA4P1CZLEs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XPMh/JDC/O93gJJCwwgJDb8ssWZvRvezNmKmyn3nIfk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jWz+KGwMk/GOvFAK2rOxF3OjxeZAWfmUQ1HGJ7icw4A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o7XbW68pc6flYigf3LW4WAGUWxpeqxaQLkHUhUR9RZ8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nqR+g60+5U0okbqJadSqGgnC+j1JcP8rwMcfzOs2ACI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Hz43qVK95tSfbYFtaE/8fE97XMk1RiO8XpWjwZHB80o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "noZUWlZ8M6KXU5rkifyo8/duw5IL7/fXbJvT7bNmW9k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WONVHCuPSanXDRQQ/3tmyJ0Vq+Lu/4hRaMUf0g0kSuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UEaj6vQRoIghE8Movd8AGXhtwIOXlP4cBsECIUvE5Y8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "D3n2YcO8+PB4C8brDo7kxKjF9Y844rVkdRMLTgsQkrw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "C+YA0G9KjxZVaWwOMuh/dcnHnHAlYnbFrRl0IEpmsY0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rUnmbmQanxrbFPYYrwyQ53x66OSt27yAvF+s48ezKDc=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Update.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Update.json
new file mode 100644
index 00000000000..cdc9f28e76e
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Update.json
@@ -0,0 +1,1164 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Double. Update.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDouble": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDouble": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "updateOne",
+ "arguments": {
+ "filter": {
+ "encryptedDouble": {
+ "$gt": {
+ "$numberDouble": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDouble": {
+ "$numberDouble": "2"
+ }
+ }
+ }
+ },
+ "result": {
+ "matchedCount": 1,
+ "modifiedCount": 1,
+ "upsertedCount": 0
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command_name": "update",
+ "command": {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedDouble": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedDouble": {
+ "$$type": "binData"
+ }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDouble",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDouble": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDouble": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDouble": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "HI88j1zrIsFoijIXKybr9mYubNV5uVeODyLHFH4Ueco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXVD/HSbBljko0jJcaxJ1nrzs2+pchLQqYR3vywS8SU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KhscCh+tt/pp8lxtKZQSPPUU94RvJYPKG/sjtzIa4Ws=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RISnuNrTTVNW5HnwCgQJ301pFw8DOcYrAMQIwVwjOkI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Ra5zukLh2boua0Bh74qA+mtIoixGXlsNsxiJqHtqdTI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eqr0v+NNWXWszi9ni8qH58Q6gw5x737tJvH3lPaNHO4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d42QupriWIwGrFAquXNFi0ehEuidIbHLFZtg1Sm2nN8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2azRVxaaTIJKcgY2FU012gcyP8Y05cRDpfUaMnCBaQU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3nlgkM4K/AAcHesRYYdEu24UGetHodVnVfHzw4yxZBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hqy91FNmAAac2zUaPO6eWFkx0/37rOWGrwXN+fzL0tU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "akX+fmscSDSF9pB5MPj56iaJPtohr0hfXNk/OPWsGv8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1ZvUb10Q7cN4cNLktd5yNjqgtawsYnkbeVBZV6WuY/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "otCwtuKiY4hCyXvYzXvo10OcnzZppebo38KsAlq49QM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mty8EscckeT/dhMfrPFyDbLnmMOcYRUQ3mLK4KTu6V8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tnvgLLkJINO7csREYu4dEVe1ICrBeu7OP+HdfoX3M2E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kOefsHgEVhkJ17UuP7Dxogy6sAQbzf1SFPKCj6XRlrQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F+JQ79xavpaHdJzdhvwyHbzdZJLNHAymc/+67La3gao=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NCZ9zp5rDRceENuSgAfTLEyKg0YgmXAhK0B8WSj7+Pw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wL1CJ7cYR5slx8mHq++uMdjDfkt9037lQTUztEMF56M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "txefkzTMITZE+XvvRFZ7QcgwDT/7m8jNmxRk4QBaoZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jFunW3v1tSYMyZtQQD28eEy9qqDp4Kqo7gMN29N4bfQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QMO915KUiS3X3R1bU1YoafVM2s0NeHo3EjgTA9PnGwY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nwdKJEXdilzvb7494vbuDJ+y6SrfJahza1dYIsHIWVI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vpWMX+T/VXXajFo0UbuYjtp0AEzBU0Y+lP+ih2EQ7mg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1lmzG0J1DhKDRhhq5y5Buygu4G8eV2X0t7kUY90EohM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SiKqpXqO0trwhFvBWK274hMklpCgMhNs/JY84yyn/NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7cPGPYCKPTay+ZR9Gx6oOueduOgaFrSuAXmNDpDHXdI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4THEYvAkjs2Fh7FIe5LC45P4i4N0L7ob67UOVbhp6Nk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "B+UGsChLLZR7iqnt8yq91OgmTgwiUKTJhFxY4NT0O6c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X1uYwBCsCg1H+PnKdwtBqXlt0zKEURi8bOM940GcPfk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xYOgT5l7shlNXCwHlguovmDkcEnF8dXyYlTyYrgZ8GE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vFMTZqV8bh1+gcKzTkXweMddJlgdUnwX0DWzUUaMok4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4HI0y9FrtleZxZ7M6INdNhLelrQ2Rv/+ykWCBl+tMC8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jpJ0bBE474OUkn1vUiLWumIBtYmwc7J5+LQU/nyeLQc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jQTPeXZvdxY/DjtPfYfKUArIDsf0E9MVFy2O26sv1ec=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QLLto0ExR2ZYMGqlyaMZc/hXFFTlwmgtKbiVq/xJIeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yBJNviU1nchbGbhx6InXCVRXa90sEepz1EwbYuKXu2U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jpEf0vHxrPu9gTJutNXSi2g/2Mc4WXFEN7yHonZEb7A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "E09kLFckMYwNuhggMxmPtwndyvIAx+Vl+b2CV6FP75s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "N+ue6/cLPb5NssmJCCeo18LlbKPz6r2z20AsnTKRvOo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yVQNZP8hhsvNGyDph2QP2qTNdXZTiIEVineKg+Qf33o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cSC9uI+9c5S8X+0G7amVyug1p0ZlgBsbEDYYyezBevQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1NpZGjoQzuQtekj80Rifxe9HbE08W07dfwxaFHaVn84=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5Ghuq/8l11Ug9Uf/RTwf9On3OxOwIXUcb9soiy4J7/w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0LWKaEty6ywxLFhDaAqulqfMnYc+tgPfH4apyEeKg80=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OwSthmCBtt6NIAoAh7aCbj82Yr/+9t8U7WuBQhFT3AQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "iYiyg6/1isqbMdvFPIGucu3cNM4NAZNtJhHpGZ4eM+c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "waBgs8jWuGJPIF5zCRh6OmIyfK5GCBQgTMfmKSR2wyY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1Jdtbe2BKJXPU2G9ywOrlODZ/cNYEQlKzAW3aMe1Hy4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xaLEnNUS/2ySerBpb9dN/D31t+wYcKekwTfkwtni0Mc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bIVBrOhOvr6cL55Tr24+B+CC9MiG7U6K54aAr2IXXuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6Cdq5wroGu2TEFnekuT7LhOpd/K/+PcipIljcHU9QL4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "K5l64vI4S/pLviLW6Pl0U3iQkI3ge0xg4RAHcEsyKJo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bzhuvZ0Ls22yIOX+Hz51eAHlSuDbWR/e0u4EhfdpHbc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Qv+fr6uD4o0bZRp69QJCFL6zvn3G82c7L+N1IFzj7H0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XAmISMbD3aEyQT+BQEphCKFNa0F0GDKFuhM9cGceKoQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4VLCokntMfm1AogpUnYGvhV7nllWSo3mS3hVESMy+hA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xiXNLj/CipEH63Vb5cidi8q9X47EF4f3HtJSOH7mfM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4XlCYfYBjI9XA5zOSgTiEBYcZsdwyXL+f5XtH2xUIOc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "k6DfQy7ZYJIkEly2B5hjOZznL4NcgMkllZjJLb7yq7w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZzM6gwWesa3lxbZVZthpPFs2s3GV0RZREE2zOMhBRBo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "US+jeMeeOd7J0wR0efJtq2/18lcO8YFvhT4O3DeaonQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b6iSxiI1FM9SzxuG1bHqGA1i4+3GOi0/SPW00XB4L7o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kn3LsxAVkzIZKK9I6fi0Cctr0yjXOYgaQWMCoj4hLpM=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Update.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Update.yml
new file mode 100644
index 00000000000..5f8423b8fec
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Double-Update.yml
@@ -0,0 +1,932 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDouble', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Double. Update."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDouble: { $numberDouble: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDouble: { $numberDouble: "1" } }
+ - name: updateOne
+ arguments:
+ filter: { encryptedDouble: { $gt: { $numberDouble: "0" } } }
+ update: { "$set": { "encryptedDouble": { $numberDouble: "2" } }}
+ result:
+ matchedCount: 1
+ modifiedCount: 1
+ upsertedCount: 0
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDouble": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDouble": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command_name: update
+ command:
+ {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedDouble": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedDouble": { $$type: "binData" }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": *encrypted_fields
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDouble": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDouble": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6YrBn2ofIw1b5ooakrLOwF41BWrps8OO0H9WH4/rtlE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "n+XAuFnP8Dov9TnhGFxNx0K/MnVM9WbJ7RouEu0ndO0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yRXojuVdn5GQtD97qYlaCL6cOLmZ7Cvcb3wFjkLUIdM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DuIkdRPITRs55I4SZmgomAHCIsDQmXRhW8+MOznkzSk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SsBk+Et1lTbU+QRPx+xyJ/jMkmfG+QCvQEpip2YYrzA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "crCIzOd8KhHvvUlX7M1v9bhvU4pLdTc+X2SuqoKU5Ek=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "YOWdCw4UrqnxkAaVjqmC4sKQDMVMHEpFGnlxpxdaU6E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "M3SShp81Ff8tQ632qKbv9MUcN6wjDaBReI0VXNu6Xh4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gzHlSPxpM0hT75kQvWFzGlOxKvDoiKQZOr19V6l2zXI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "s3JnppOGYw9SL2Q1kMAZs948v2F5PrpXjGei/HioDWs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cG6+3Gk/zEH68P/uuuwiAUVCuyJwa1LeV+t29FlPPAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dupdvR3AyJtM+g9NDKiaLVOtGca387JQp8w+V03m7Ig=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JqEQc5svj2jTvZ6LLA5ivE+kTb/0aRemSEmxk4G7Zrg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "szcXXXKnob+p3SoM4yED2R920LeJ7cVsclPMFTe4CeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "o1QoGVXmuBdHwHm7aCtGMlMVKrjFdYvJXpoq6uhIAZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Jfm5wPlqqLCJRGQIqRq2NGmpn7s0Vrih2H3YAOoI2YU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zMHLb8ARbsYo8Ld05bqnGFf1Usha6EGb8QKwdSAyps0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yQdtq9lh5pugL7/i0Bj/PuZUUBUIzf+7wj1rl5y736w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wGWVZdO7qIuyDg/BqDgqjgoQ02h5YYgwXQB1oCin2NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "by9HMLj6NTEpgztZ5HSN6GxImkXPcaFINYDzgZY33X8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tWo0vbasi7bXmn/MsOx13VC1IsWtpx/nYp0uj4iMzdA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tQQpndUYd5O87lOtrGjH3wl9VsOK0ray7RMasL90sBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cQjXEDCMsOpKLLf+vlTgIHA+cbSJdzqhbSX9Wvh95aA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7yMpU48IxK9SzP2cx3VnTownGEwFmeFofuuFT97SuuY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kSOx1kz0CmBgzKQHZlo65ZUY1DIv9A99JRm+Us2y6Ew=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ubQpdPBe6/xvtr+AcXdfYLSvYCR4ot0tivehkCsupb4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xal+iCJ6FTefRQToyoNksc9NCZShyn04NDGi4IYrcoM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d7jU4iOK50xHxlkSifcxlZFCM46TSgQzoYivxG3HNLY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tJvl2nsBLBVzL3pp6sKWCL4UXeh3q/roYBJjSb74ve0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OIUCaKRvIx9t1w6Hxlz1IcQTdPNCfdRNwnnTm10W+X0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A9tvzsiElotOUVIB4CqfQp9mAwqvTM35YkmAR170aHA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lI8gpK7hpb7c9x4RQugsxMnQay5LZJmwslZdvMx/dcE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dNCzh40U0XvdKnSDi3HRQOWQftEsDVqc4uUvsVFGoq8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "IP+iwEBWBwVVZIdpaMu8k5+soFCz+TZkYn3drKZ9grE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pnqyh6e0y5svHkJDShlN9CHV0WvMBE4QbtJpQw5ZCXc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "elEl42tbVDoRTLjAhZUFEtXiut4b3PVhg/1ZLZSQdtE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vHuu2FxwclMHqyE6JBYbTYgbEkB0dqb/JuaxsvfwsmY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xTf7NCe3Gf8QpE78HR5OknlLTKfs9J+RN9UZpH6fnso=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XiWSasRnJAulGR6+LCVD3mwRObXylqYWR9jvpywq12c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MZMxEQ5ikx0PG1YFIExv0UnTZogsvgeOEZTpzvBDn4w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yZMyMZBDrWbAhvnic7vvIYhmO9m5H2iuv0c8KNZrBzY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xxM14hTPY5j0vvcK2C7YAEjzdsfUTFHozHC0hEo1bxI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+01rqR1xVwkpGXcstbk1ItJqFVjH6Q8MGxEN3Cm9Y1A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xOpLV0Z2VTRJ3iWtnWZcsyjXubTIkYWo31cO+HV1o1k=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BWUOLqgLBqc5NwxVlSV5H3KFQPXbCp7mdo+jF+8cJqY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "fuQb1S6xZDGlrEbK+kI23aL53PP1PVNwqICnZNt9Yzg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfscnoibFttahLdPVC4Ee+47ewGFKpDSU7M6HX19bKE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rpSW2awybNVeKtat91VFxqbINoTfNhPfQAu+d73Xtf8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "9M/CP9ccOIIj2LLFmE0GFDO0Ban2wsNalEXfM6+h+1s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WrEMG49l1ye4MhXs5ZS9tz8P6h+hDvthIg/2wW9ne1Q=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ImNhbfeyfH8qIEeA5ic0s3dAQBdzzTBS+CPsNih9vZ0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dWP33YDSn04UKJN2ogh2Rui0iW/0q2y18OCDRVcfyoo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "lYv0isAtfGh6H9tdp3cp2eHU7q2J+uk7QrgcxtK3w7Y=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "VGMoamB/+7zTOYcY/pqJc96xlv2PdW4hwsIAEIslTDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yNeBWMF7BnD9wVwz2PgJsvWr77QiVvvWUvJF0+fqBug=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SfpvObJ+tJBXSvqeN7vlOfmhYign635lciYAJIjUtY8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dsen4NqjzVGjpjufiTMs3+gqeD09EbnuogPgxrJECwg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "pxCWVM3sn19NsFEpgHbgLa+PmYlhN3mMiP0Wk8kJhYw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q11KNvJszjYIB9n9HcC+N4uz11a3eRj1L3BH9scKMDQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "A1PmkgcEToWh1JiVWE6mI5jUu7poxWWuCUt/cgRUUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "qJo3Hu4PJeanL7XEaWXO/n3YsodhZyd+MJOOmB9Kpd8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "BkBKLO8URFscfRY9Bav/1+L9mLohDgNr/MkZtGiraIs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "rZq5WA3Hx3xthOyHAJXK//f8pE2qbz7YKu3TIMp9GFY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X07a/Lm80p5xd4RFs1dNmw+90tmPDPdGiAKVZkxd4zY=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDouble": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "HI88j1zrIsFoijIXKybr9mYubNV5uVeODyLHFH4Ueco=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wXVD/HSbBljko0jJcaxJ1nrzs2+pchLQqYR3vywS8SU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "KhscCh+tt/pp8lxtKZQSPPUU94RvJYPKG/sjtzIa4Ws=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RISnuNrTTVNW5HnwCgQJ301pFw8DOcYrAMQIwVwjOkI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Ra5zukLh2boua0Bh74qA+mtIoixGXlsNsxiJqHtqdTI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "eqr0v+NNWXWszi9ni8qH58Q6gw5x737tJvH3lPaNHO4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "d42QupriWIwGrFAquXNFi0ehEuidIbHLFZtg1Sm2nN8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "2azRVxaaTIJKcgY2FU012gcyP8Y05cRDpfUaMnCBaQU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "3nlgkM4K/AAcHesRYYdEu24UGetHodVnVfHzw4yxZBM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hqy91FNmAAac2zUaPO6eWFkx0/37rOWGrwXN+fzL0tU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "akX+fmscSDSF9pB5MPj56iaJPtohr0hfXNk/OPWsGv8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1ZvUb10Q7cN4cNLktd5yNjqgtawsYnkbeVBZV6WuY/I=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "otCwtuKiY4hCyXvYzXvo10OcnzZppebo38KsAlq49QM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Mty8EscckeT/dhMfrPFyDbLnmMOcYRUQ3mLK4KTu6V8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "tnvgLLkJINO7csREYu4dEVe1ICrBeu7OP+HdfoX3M2E=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kOefsHgEVhkJ17UuP7Dxogy6sAQbzf1SFPKCj6XRlrQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F+JQ79xavpaHdJzdhvwyHbzdZJLNHAymc/+67La3gao=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "NCZ9zp5rDRceENuSgAfTLEyKg0YgmXAhK0B8WSj7+Pw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wL1CJ7cYR5slx8mHq++uMdjDfkt9037lQTUztEMF56M=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "txefkzTMITZE+XvvRFZ7QcgwDT/7m8jNmxRk4QBaoZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jFunW3v1tSYMyZtQQD28eEy9qqDp4Kqo7gMN29N4bfQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QMO915KUiS3X3R1bU1YoafVM2s0NeHo3EjgTA9PnGwY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "nwdKJEXdilzvb7494vbuDJ+y6SrfJahza1dYIsHIWVI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vpWMX+T/VXXajFo0UbuYjtp0AEzBU0Y+lP+ih2EQ7mg=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1lmzG0J1DhKDRhhq5y5Buygu4G8eV2X0t7kUY90EohM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SiKqpXqO0trwhFvBWK274hMklpCgMhNs/JY84yyn/NE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7cPGPYCKPTay+ZR9Gx6oOueduOgaFrSuAXmNDpDHXdI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4THEYvAkjs2Fh7FIe5LC45P4i4N0L7ob67UOVbhp6Nk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "B+UGsChLLZR7iqnt8yq91OgmTgwiUKTJhFxY4NT0O6c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X1uYwBCsCg1H+PnKdwtBqXlt0zKEURi8bOM940GcPfk=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xYOgT5l7shlNXCwHlguovmDkcEnF8dXyYlTyYrgZ8GE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "vFMTZqV8bh1+gcKzTkXweMddJlgdUnwX0DWzUUaMok4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4HI0y9FrtleZxZ7M6INdNhLelrQ2Rv/+ykWCBl+tMC8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jpJ0bBE474OUkn1vUiLWumIBtYmwc7J5+LQU/nyeLQc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jQTPeXZvdxY/DjtPfYfKUArIDsf0E9MVFy2O26sv1ec=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "QLLto0ExR2ZYMGqlyaMZc/hXFFTlwmgtKbiVq/xJIeI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yBJNviU1nchbGbhx6InXCVRXa90sEepz1EwbYuKXu2U=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jpEf0vHxrPu9gTJutNXSi2g/2Mc4WXFEN7yHonZEb7A=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "E09kLFckMYwNuhggMxmPtwndyvIAx+Vl+b2CV6FP75s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "N+ue6/cLPb5NssmJCCeo18LlbKPz6r2z20AsnTKRvOo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "yVQNZP8hhsvNGyDph2QP2qTNdXZTiIEVineKg+Qf33o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cSC9uI+9c5S8X+0G7amVyug1p0ZlgBsbEDYYyezBevQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1NpZGjoQzuQtekj80Rifxe9HbE08W07dfwxaFHaVn84=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "5Ghuq/8l11Ug9Uf/RTwf9On3OxOwIXUcb9soiy4J7/w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0LWKaEty6ywxLFhDaAqulqfMnYc+tgPfH4apyEeKg80=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "OwSthmCBtt6NIAoAh7aCbj82Yr/+9t8U7WuBQhFT3AQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "iYiyg6/1isqbMdvFPIGucu3cNM4NAZNtJhHpGZ4eM+c=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "waBgs8jWuGJPIF5zCRh6OmIyfK5GCBQgTMfmKSR2wyY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "1Jdtbe2BKJXPU2G9ywOrlODZ/cNYEQlKzAW3aMe1Hy4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xaLEnNUS/2ySerBpb9dN/D31t+wYcKekwTfkwtni0Mc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bIVBrOhOvr6cL55Tr24+B+CC9MiG7U6K54aAr2IXXuw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6Cdq5wroGu2TEFnekuT7LhOpd/K/+PcipIljcHU9QL4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "K5l64vI4S/pLviLW6Pl0U3iQkI3ge0xg4RAHcEsyKJo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "bzhuvZ0Ls22yIOX+Hz51eAHlSuDbWR/e0u4EhfdpHbc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Qv+fr6uD4o0bZRp69QJCFL6zvn3G82c7L+N1IFzj7H0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "XAmISMbD3aEyQT+BQEphCKFNa0F0GDKFuhM9cGceKoQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4VLCokntMfm1AogpUnYGvhV7nllWSo3mS3hVESMy+hA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "xiXNLj/CipEH63Vb5cidi8q9X47EF4f3HtJSOH7mfM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "4XlCYfYBjI9XA5zOSgTiEBYcZsdwyXL+f5XtH2xUIOc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "k6DfQy7ZYJIkEly2B5hjOZznL4NcgMkllZjJLb7yq7w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ZzM6gwWesa3lxbZVZthpPFs2s3GV0RZREE2zOMhBRBo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "US+jeMeeOd7J0wR0efJtq2/18lcO8YFvhT4O3DeaonQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b6iSxiI1FM9SzxuG1bHqGA1i4+3GOi0/SPW00XB4L7o=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kn3LsxAVkzIZKK9I6fi0Cctr0yjXOYgaQWMCoj4hLpM=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Aggregate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Aggregate.json
new file mode 100644
index 00000000000..f2ea49ad75e
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Aggregate.json
@@ -0,0 +1,586 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range DoublePrecision. Aggregate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "aggregate": "default",
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "cursor": {},
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "aggregate"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MgwakFvPyBlwqFTbhWUF79URJQWFoJTGotlEVSPPUsQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DyBERpMSD5lEM5Nhpcn4WGgxgn/mkUVJp+PYSLX5jsE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I43iazc0xj1WVbYB/V+uTL/tughN1bBlxh1iypBnNsA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wjOBa/ATMuOywFmuPgC0GF/oeLqu0Z7eK5udzkTPbis=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gRQVwiR+m+0Vg8ZDXqrQQcVnTyobwCXNaA4BCJVXtMc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WUZ6huwx0ZbLb0R00uiC9FOJzsUocUN8qE5+YRenkvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7s79aKEuPgQcS/YPOOVcYNZvHIo7FFsWtFCrnDKXefA=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Aggregate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Aggregate.yml
new file mode 100644
index 00000000000..47ac5d44448
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Aggregate.yml
@@ -0,0 +1,311 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDoublePrecision', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDouble': '0.0'}, 'max': {'$numberDouble': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range DoublePrecision. Aggregate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDoublePrecision: { $numberDouble: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDoublePrecision: { $numberDouble: "1" } }
+ - name: aggregate
+ arguments:
+ pipeline: [{ $match: { "encryptedDoublePrecision": { $gt: {$numberDouble: "0" }} } }]
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDoublePrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDoublePrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ aggregate: *collection_name
+ pipeline: [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "CvoJAAADcGF5bG9hZADKCQAABGcAjgkAAAMwAH0AAAAFZAAgAAAAAHdJ2Vnb4MMzqVYVssjSdDy8XU4GVzMTfGifGETgQ2mYBXMAIAAAAAD7cFfKJGIXo6PjyeX2ria02CckW7dWFDoY/3FyBdm1NQVjACAAAAAAqZO+/+gRWlPaMOvuiXizSmBe7lp1VWg1vJ4UmW8o3bQAAzEAfQAAAAVkACAAAAAAlmvfDrZoydUet4eCVMq7z6a58Ea+1HLJOWxN5lNcrWEFcwAgAAAAAEBo5AWZyC41b9ayjWNQSL4iYEAIwR/JG+ssN8bdoK9RBWMAIAAAAAD4FTKJ6CTzKBAyAwZCLUoDEfnZTRZmhF1q/2hnDzmG9gADMgB9AAAABWQAIAAAAABbiLaoxAA6rinMJw1hC8ZUiq6UU1AQaPFn/py/Y06WuQVzACAAAAAAhtDasFkvYE7SCNu1je/hxdE9TJtAvvH3NtdEbKzNbCUFYwAgAAAAAHHy019aPatHTST+0wGsmukUcsQNQj6KpoS9b7iGeThAAAMzAH0AAAAFZAAgAAAAALORWwSr+tYNxcil2KIGSbNhTHvcPbdj+rLVQNx21S/KBXMAIAAAAAD6diZBkPEJ1cQy06LAxdbNK8Nlxbb44fH4Wk3Y3260nQVjACAAAAAAvUc1q7pyhjU0ilgmwiKkHIY3V4/LxO+Y2uT7eSpBOs8AAzQAfQAAAAVkACAAAAAAG5XMK96PjClNlUvg82j4pMY1YxsznZfj4uNweD394FoFcwAgAAAAAKHgQLdGJHkrfFg9nB93Ac+3VgBw6aU44MTkKIQ91dZoBWMAIAAAAACtbNc1DCoUUyzlkrYmJi4NlwOqLYmb6au4pDc8clXVXwADNQB9AAAABWQAIAAAAAA6M++b9I0YFemmWBAWAE3glu2Ah3Ta1FBxAQEIWS0toAVzACAAAAAANXYTqPf1Y6X3Ns6YQIX0C3FKCyWUo+Kk+fNcQvc0WSoFYwAgAAAAAAaqju6Dv8wqXxcsIbP67V1QGaD5kNTFofZ9Zuf1LGnKAAM2AH0AAAAFZAAgAAAAAKl8bV1riH/uyJ+X0HHd3+18k2cJl2dQFXCdoagutFcaBXMAIAAAAABm8F2Ew9f0VOABdcF+lP0Bi+zWvEUPniWgrxPq/Sx3uwVjACAAAAAAQd2pWVqlmmLg8m8xbs7yLewmR0Z6UQgXofbCsMHaGSoAAzcAfQAAAAVkACAAAAAAsYZD8JEP6kYsPncFnNZwJxhu4YtUTKPNcjHtv67H+rYFcwAgAAAAAI4LqZcRkvbs/2F62Flu0pixNcor4WmBD0DHGaf039wLBWMAIAAAAAAqzpfyBpr4Ano+nFWJyyTuIJelJgiRDnMHQqdeqV8JaAADOAB9AAAABWQAIAAAAAC0vdAi+dmoIXvZ5LqUqvyKV9/tHqSI2SWiSJO5pTnA2wVzACAAAAAAS2qvf9fvfVUH5WtsVxjxmskpGjYTQV34LwvQQw1y9wIFYwAgAAAAAFhNY4qwNntyA+GIoNHZsTkIUbPgy4TBlvNnTPjp4bMFAAM5AH0AAAAFZAAgAAAAAH31lb/srBcrOXkzddCwAnclsR5/3QijEVgECs2JjOWBBXMAIAAAAABg7+prDT73YcCvLE5QbuIrqGcjLc5pQD2Miq0d29yrxgVjACAAAAAAFKqAqXG/ktejFQ7fM2aobO2VmEvZLXnRaJH97Jy/sJYAAzEwAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzExAH0AAAAFZAAgAAAAAFdthRhe2Q8CvxGIhjTJZv0Lk97GkHciTPxZ/mckLoNaBXMAIAAAAAAqOxsAr23LOVB0DIHbPf9UDJJRFXY2YoKbjhRqw5psbQVjACAAAAAA7ty+Nif6KjS3v1zWKaHX9n4Zj3XC4ajuCduKNIYr3l8AAzEyAH0AAAAFZAAgAAAAAMWymwwbvIeMqmnKWWifUqoCxOsdpnonM2qdLPyjqJO/BXMAIAAAAAB6IDmmpUhBD2zpRj8/y/kmOSXcjuIU14sNh6GKSsg2uwVjACAAAAAABSWO0Ii+NGcsHZQ9MR5EjPXVKeXlI4FQ1pcxeKDiuooAAzEzAH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzE0AH0AAAAFZAAgAAAAAJaRYmo8zqI2BEUzdSwp4tVRpPmVWsfydkYN3UHh6TMuBXMAIAAAAAAeD6mDnQeLlbC9i0sVgE8+RH6y+e94OJQ0tJ0PvblVSgVjACAAAAAAKUhYSt4nvvUfbNgPJ2E79SciVZ0ZzbzoZ2nKr4ewNLsAAzE1AH0AAAAFZAAgAAAAAAZZ538coNPwyRjhEwr5P8Xw32oWOJF+R+nfCGgy2qO3BXMAIAAAAACOPLnJlKwGNPDBReRKnHfteq0wFb3ezhrc7BVXs8RUHwVjACAAAAAAzCICkPZAkfTiD0MUt155dIPgLJ4/e0qFTM2FR0U261YAAzE2AH0AAAAFZAAgAAAAAFH9l9GGA1I52atJV5jNUf1lx8jBjoEoVoME97v5GFJiBXMAIAAAAAC1qH3Kd78Dr9NGbw7y9D/XYBwv5h1LLO8la5OU7g8UkQVjACAAAAAAn27H0Mpwatgc1R/4nXSRjsG2PzB0ol5YR9f3mCb2y/0AAzE3AH0AAAAFZAAgAAAAADtbVEI2tdkrowEMdkacD2w0Y3T3Ofi7PH6HmA6sP0c/BXMAIAAAAADuBSROnZHA+NgUPH8d0LnWFiDsM2bY8bzjC1+elSsIygVjACAAAAAAMinHEu4wkbeOpdZbXQ94q5o5pIEubqXUDrTRYOGmJC0AAzE4AH0AAAAFZAAgAAAAAAh3WpeMVlikPFYj9hLj+fmIqVt6omCSF75W3TPExyWpBXMAIAAAAAAsQkRmwqeVj2gGE03orb6PtrIzDt6dDU3hgSQi8E2wKgVjACAAAAAAvlZo8Qj3eAdxzZxN5sHKhxi+a9Npj7cZC5+pE6qrOawAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ]
+ cursor: {}
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: aggregate
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MgwakFvPyBlwqFTbhWUF79URJQWFoJTGotlEVSPPUsQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DyBERpMSD5lEM5Nhpcn4WGgxgn/mkUVJp+PYSLX5jsE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I43iazc0xj1WVbYB/V+uTL/tughN1bBlxh1iypBnNsA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wjOBa/ATMuOywFmuPgC0GF/oeLqu0Z7eK5udzkTPbis=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gRQVwiR+m+0Vg8ZDXqrQQcVnTyobwCXNaA4BCJVXtMc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WUZ6huwx0ZbLb0R00uiC9FOJzsUocUN8qE5+YRenkvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7s79aKEuPgQcS/YPOOVcYNZvHIo7FFsWtFCrnDKXefA=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Correctness.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Correctness.json
new file mode 100644
index 00000000000..e69d9126941
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Correctness.json
@@ -0,0 +1,1650 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "Find with $gt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gte": {
+ "$numberDouble": "0.0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$lt": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$lte": {
+ "$numberDouble": "1.0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt below min",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$lt": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "must be greater than the range minimum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt above max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "200.0"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "must be less than the range max"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "0.0"
+ },
+ "$lt": {
+ "$numberDouble": "2.0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with full range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gte": {
+ "$numberDouble": "0.0"
+ },
+ "$lte": {
+ "$numberDouble": "200.0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$in": [
+ {
+ "$numberDouble": "0.0"
+ }
+ ]
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Insert out of range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "-1"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "value must be greater than or equal to the minimum value"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Insert min and max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 200,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "200.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {},
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ },
+ {
+ "_id": 200,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "200.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$gte": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$lt": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$lte": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt below min",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$lt": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": {
+ "errorContains": "must be greater than the range minimum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt above max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "200.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": {
+ "errorContains": "must be less than the range max"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "0.0"
+ },
+ "$lt": {
+ "$numberDouble": "2.0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with full range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$gte": {
+ "$numberDouble": "0.0"
+ },
+ "$lte": {
+ "$numberDouble": "200.0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1.0"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedDoublePrecision": {
+ "$in": [
+ {
+ "$numberDouble": "0.0"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0.0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Insert Int",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "cannot encrypt element"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Find Int",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gte": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": {
+ "errorContains": "field type is not supported"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Correctness.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Correctness.yml
new file mode 100644
index 00000000000..291ffa58ab8
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Correctness.yml
@@ -0,0 +1,422 @@
+# Test correctness results.
+# Does not include command monitoring expectations or outcome assertions to make tests more readable.
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDoublePrecision', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDouble': '0.0'}, 'max': {'$numberDouble': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "Find with $gt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDoublePrecision: { $numberDouble: "0.0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDoublePrecision: { $numberDouble: "1.0" } }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $gt: { $numberDouble: "0.0" } }}
+ result: [*doc1]
+
+ - description: "Find with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $gte: { $numberDouble: "0.0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $gt: { $numberDouble: "1.0" } }}
+ result: []
+
+ - description: "Find with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $lt: { $numberDouble: "1.0" } }}
+ result: [*doc0]
+
+ - description: "Find with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $lte: { $numberDouble: "1.0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $lt below min"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $lt: { $numberDouble: "0.0" } }}
+ result:
+ errorContains: must be greater than the range minimum
+
+ - description: "Find with $gt above max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $gt: { $numberDouble: "200.0" } }}
+ result:
+ errorContains: must be less than the range max
+
+ - description: "Find with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $gt: { $numberDouble: "0.0" }, $lt: { $numberDouble: "2.0"} }}
+ result: [*doc1]
+
+ - description: "Find with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $numberDouble: "0.0" } }
+ result: [*doc0]
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $numberDouble: "1.0" } }
+ result: [*doc1]
+
+ - description: "Find with full range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $gte: {$numberDouble: "0.0"}, $lte: {$numberDouble: "200.0"} } }
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $in: [ {$numberDouble: "0.0"} ] } }
+ result: [*doc0]
+
+ - description: "Insert out of range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: { _id: 0, encryptedDoublePrecision: { $numberDouble: "-1" }}
+ result:
+ errorContains: value must be greater than or equal to the minimum value
+
+ - description: "Insert min and max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: *doc0
+ - name: insertOne
+ arguments:
+ document: &doc200 { _id: 200, encryptedDoublePrecision: { $numberDouble: "200.0" }}
+ - name: find
+ arguments:
+ filter: {}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc200]
+
+ - description: "Aggregate with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDoublePrecision: { $gte: { $numberDouble: "0.0" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDoublePrecision: { $gt: { $numberDouble: "1.0" } }} }
+ result: []
+
+ - description: "Aggregate with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDoublePrecision: { $lt: { $numberDouble: "1.0" } }} }
+ result: [*doc0]
+
+ - description: "Aggregate with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDoublePrecision: { $lte: { $numberDouble: "1.0" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $lt below min"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDoublePrecision: { $lt: { $numberDouble: "0.0" } }} }
+ result:
+ errorContains: must be greater than the range minimum
+
+ - description: "Aggregate with $gt above max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDoublePrecision: { $gt: { $numberDouble: "200.0" } }} }
+ result:
+ errorContains: must be less than the range max
+
+ - description: "Aggregate with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDoublePrecision: { $gt: { $numberDouble: "0.0" }, $lt: { $numberDouble: "2.0"} }} }
+ result: [*doc1]
+
+ - description: "Aggregate with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDoublePrecision: { $numberDouble: "0.0" } } }
+ result: [*doc0]
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDoublePrecision: { $numberDouble: "1.0" } } }
+ result: [*doc1]
+
+ - description: "Aggregate with full range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDoublePrecision: { $gte: {$numberDouble: "0.0"}, $lte: {$numberDouble: "200.0"} } } }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedDoublePrecision: { $in: [ {$numberDouble: "0.0"} ] } } }
+ result: [*doc0]
+
+ - description: "Wrong type: Insert Int"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: { _id: 0, encryptedDoublePrecision: { $numberInt: "0" }} }
+ result:
+ # Expect an error from mongocryptd.
+ errorContains: "cannot encrypt element"
+
+ - description: "Wrong type: Find Int"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $gte: { $numberInt: "0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result:
+ # expect an error from libmongocrypt.
+ errorContains: "field type is not supported"
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Delete.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Delete.json
new file mode 100644
index 00000000000..d6a9c4b7e7a
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Delete.json
@@ -0,0 +1,491 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range DoublePrecision. Delete.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "deleteOne",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ "result": {
+ "deletedCount": 1
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "delete": "default",
+ "deletes": [
+ {
+ "q": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDoublePrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "delete"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Delete.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Delete.yml
new file mode 100644
index 00000000000..dd8b8624712
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Delete.yml
@@ -0,0 +1,227 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDoublePrecision', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDouble': '0.0'}, 'max': {'$numberDouble': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range DoublePrecision. Delete."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDoublePrecision: { $numberDouble: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDoublePrecision: { $numberDouble: "1" } }
+ - name: deleteOne
+ arguments:
+ filter: { "encryptedDoublePrecision": { $gt: {$numberDouble: "0" }} }
+ result:
+ deletedCount: 1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDoublePrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDoublePrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ delete: *collection_name
+ deletes: [
+ {
+ "q": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ]
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDoublePrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: delete
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-FindOneAndUpdate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-FindOneAndUpdate.json
new file mode 100644
index 00000000000..0511c2e37ec
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-FindOneAndUpdate.json
@@ -0,0 +1,608 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range DoublePrecision. FindOneAndUpdate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "findOneAndUpdate",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDoublePrecision": {
+ "$numberDouble": "2"
+ }
+ }
+ },
+ "returnDocument": "Before"
+ },
+ "result": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "findAndModify": "default",
+ "query": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDoublePrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "findAndModify"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0OKSXELxPP85SBVwDGf3LtMEQCJ8TTkFUl/+6jlkdb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uEw0lpQtBppR3vqV9j9+NQRSBF1BzZukb8c9IhyWvxc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zVhZ7Q59O087ji49oMJvBIgeir2oqvUpnh4p53GcTow=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dowrzKs+qJhRMZyKDbhjXbuX43FbmUKOaw9I8YlOZDw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ep5B6cska6THLIF7Mn3tn3RvV9EiwLSt0eZM/CLRUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "URNp/YmmDh5wIZUfAzzgPyJeMNiVx9PMsz52DZRujGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wlM4IAQhhKQEzoVqS8b1Ddd50GB95OFb9LnzOwyjCP4=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-FindOneAndUpdate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-FindOneAndUpdate.yml
new file mode 100644
index 00000000000..a13f878e307
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-FindOneAndUpdate.yml
@@ -0,0 +1,327 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDoublePrecision', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDouble': '0.0'}, 'max': {'$numberDouble': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range DoublePrecision. FindOneAndUpdate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDoublePrecision: { $numberDouble: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDoublePrecision: { $numberDouble: "1" } }
+ - name: findOneAndUpdate
+ arguments:
+ filter: { encryptedDoublePrecision: { $gt: {$numberDouble: "0"}} }
+ update: { "$set": { "encryptedDoublePrecision": {$numberDouble: "2"}}}
+ returnDocument: Before
+ result: *doc1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDoublePrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDoublePrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ findAndModify: *collection_name
+ query: {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ update: { "$set": {"encryptedDoublePrecision": { $$type: "binData" }} }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDoublePrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: findAndModify
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0OKSXELxPP85SBVwDGf3LtMEQCJ8TTkFUl/+6jlkdb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uEw0lpQtBppR3vqV9j9+NQRSBF1BzZukb8c9IhyWvxc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zVhZ7Q59O087ji49oMJvBIgeir2oqvUpnh4p53GcTow=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dowrzKs+qJhRMZyKDbhjXbuX43FbmUKOaw9I8YlOZDw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ep5B6cska6THLIF7Mn3tn3RvV9EiwLSt0eZM/CLRUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "URNp/YmmDh5wIZUfAzzgPyJeMNiVx9PMsz52DZRujGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wlM4IAQhhKQEzoVqS8b1Ddd50GB95OFb9LnzOwyjCP4=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-InsertFind.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-InsertFind.json
new file mode 100644
index 00000000000..616101b4d44
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-InsertFind.json
@@ -0,0 +1,577 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range DoublePrecision. Insert and Find.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "default",
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "find"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MgwakFvPyBlwqFTbhWUF79URJQWFoJTGotlEVSPPUsQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DyBERpMSD5lEM5Nhpcn4WGgxgn/mkUVJp+PYSLX5jsE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I43iazc0xj1WVbYB/V+uTL/tughN1bBlxh1iypBnNsA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wjOBa/ATMuOywFmuPgC0GF/oeLqu0Z7eK5udzkTPbis=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gRQVwiR+m+0Vg8ZDXqrQQcVnTyobwCXNaA4BCJVXtMc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WUZ6huwx0ZbLb0R00uiC9FOJzsUocUN8qE5+YRenkvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7s79aKEuPgQcS/YPOOVcYNZvHIo7FFsWtFCrnDKXefA=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-InsertFind.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-InsertFind.yml
new file mode 100644
index 00000000000..1cc9969c011
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-InsertFind.yml
@@ -0,0 +1,305 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDoublePrecision', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDouble': '0.0'}, 'max': {'$numberDouble': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range DoublePrecision. Insert and Find."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDoublePrecision: { $numberDouble: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDoublePrecision: { $numberDouble: "1" } }
+ - name: find
+ arguments:
+ filter: { encryptedDoublePrecision: { $gt: { $numberDouble: "0" } } }
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDoublePrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDoublePrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ find: *collection_name
+ filter:
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "CvoJAAADcGF5bG9hZADKCQAABGcAjgkAAAMwAH0AAAAFZAAgAAAAAHdJ2Vnb4MMzqVYVssjSdDy8XU4GVzMTfGifGETgQ2mYBXMAIAAAAAD7cFfKJGIXo6PjyeX2ria02CckW7dWFDoY/3FyBdm1NQVjACAAAAAAqZO+/+gRWlPaMOvuiXizSmBe7lp1VWg1vJ4UmW8o3bQAAzEAfQAAAAVkACAAAAAAlmvfDrZoydUet4eCVMq7z6a58Ea+1HLJOWxN5lNcrWEFcwAgAAAAAEBo5AWZyC41b9ayjWNQSL4iYEAIwR/JG+ssN8bdoK9RBWMAIAAAAAD4FTKJ6CTzKBAyAwZCLUoDEfnZTRZmhF1q/2hnDzmG9gADMgB9AAAABWQAIAAAAABbiLaoxAA6rinMJw1hC8ZUiq6UU1AQaPFn/py/Y06WuQVzACAAAAAAhtDasFkvYE7SCNu1je/hxdE9TJtAvvH3NtdEbKzNbCUFYwAgAAAAAHHy019aPatHTST+0wGsmukUcsQNQj6KpoS9b7iGeThAAAMzAH0AAAAFZAAgAAAAALORWwSr+tYNxcil2KIGSbNhTHvcPbdj+rLVQNx21S/KBXMAIAAAAAD6diZBkPEJ1cQy06LAxdbNK8Nlxbb44fH4Wk3Y3260nQVjACAAAAAAvUc1q7pyhjU0ilgmwiKkHIY3V4/LxO+Y2uT7eSpBOs8AAzQAfQAAAAVkACAAAAAAG5XMK96PjClNlUvg82j4pMY1YxsznZfj4uNweD394FoFcwAgAAAAAKHgQLdGJHkrfFg9nB93Ac+3VgBw6aU44MTkKIQ91dZoBWMAIAAAAACtbNc1DCoUUyzlkrYmJi4NlwOqLYmb6au4pDc8clXVXwADNQB9AAAABWQAIAAAAAA6M++b9I0YFemmWBAWAE3glu2Ah3Ta1FBxAQEIWS0toAVzACAAAAAANXYTqPf1Y6X3Ns6YQIX0C3FKCyWUo+Kk+fNcQvc0WSoFYwAgAAAAAAaqju6Dv8wqXxcsIbP67V1QGaD5kNTFofZ9Zuf1LGnKAAM2AH0AAAAFZAAgAAAAAKl8bV1riH/uyJ+X0HHd3+18k2cJl2dQFXCdoagutFcaBXMAIAAAAABm8F2Ew9f0VOABdcF+lP0Bi+zWvEUPniWgrxPq/Sx3uwVjACAAAAAAQd2pWVqlmmLg8m8xbs7yLewmR0Z6UQgXofbCsMHaGSoAAzcAfQAAAAVkACAAAAAAsYZD8JEP6kYsPncFnNZwJxhu4YtUTKPNcjHtv67H+rYFcwAgAAAAAI4LqZcRkvbs/2F62Flu0pixNcor4WmBD0DHGaf039wLBWMAIAAAAAAqzpfyBpr4Ano+nFWJyyTuIJelJgiRDnMHQqdeqV8JaAADOAB9AAAABWQAIAAAAAC0vdAi+dmoIXvZ5LqUqvyKV9/tHqSI2SWiSJO5pTnA2wVzACAAAAAAS2qvf9fvfVUH5WtsVxjxmskpGjYTQV34LwvQQw1y9wIFYwAgAAAAAFhNY4qwNntyA+GIoNHZsTkIUbPgy4TBlvNnTPjp4bMFAAM5AH0AAAAFZAAgAAAAAH31lb/srBcrOXkzddCwAnclsR5/3QijEVgECs2JjOWBBXMAIAAAAABg7+prDT73YcCvLE5QbuIrqGcjLc5pQD2Miq0d29yrxgVjACAAAAAAFKqAqXG/ktejFQ7fM2aobO2VmEvZLXnRaJH97Jy/sJYAAzEwAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzExAH0AAAAFZAAgAAAAAFdthRhe2Q8CvxGIhjTJZv0Lk97GkHciTPxZ/mckLoNaBXMAIAAAAAAqOxsAr23LOVB0DIHbPf9UDJJRFXY2YoKbjhRqw5psbQVjACAAAAAA7ty+Nif6KjS3v1zWKaHX9n4Zj3XC4ajuCduKNIYr3l8AAzEyAH0AAAAFZAAgAAAAAMWymwwbvIeMqmnKWWifUqoCxOsdpnonM2qdLPyjqJO/BXMAIAAAAAB6IDmmpUhBD2zpRj8/y/kmOSXcjuIU14sNh6GKSsg2uwVjACAAAAAABSWO0Ii+NGcsHZQ9MR5EjPXVKeXlI4FQ1pcxeKDiuooAAzEzAH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzE0AH0AAAAFZAAgAAAAAJaRYmo8zqI2BEUzdSwp4tVRpPmVWsfydkYN3UHh6TMuBXMAIAAAAAAeD6mDnQeLlbC9i0sVgE8+RH6y+e94OJQ0tJ0PvblVSgVjACAAAAAAKUhYSt4nvvUfbNgPJ2E79SciVZ0ZzbzoZ2nKr4ewNLsAAzE1AH0AAAAFZAAgAAAAAAZZ538coNPwyRjhEwr5P8Xw32oWOJF+R+nfCGgy2qO3BXMAIAAAAACOPLnJlKwGNPDBReRKnHfteq0wFb3ezhrc7BVXs8RUHwVjACAAAAAAzCICkPZAkfTiD0MUt155dIPgLJ4/e0qFTM2FR0U261YAAzE2AH0AAAAFZAAgAAAAAFH9l9GGA1I52atJV5jNUf1lx8jBjoEoVoME97v5GFJiBXMAIAAAAAC1qH3Kd78Dr9NGbw7y9D/XYBwv5h1LLO8la5OU7g8UkQVjACAAAAAAn27H0Mpwatgc1R/4nXSRjsG2PzB0ol5YR9f3mCb2y/0AAzE3AH0AAAAFZAAgAAAAADtbVEI2tdkrowEMdkacD2w0Y3T3Ofi7PH6HmA6sP0c/BXMAIAAAAADuBSROnZHA+NgUPH8d0LnWFiDsM2bY8bzjC1+elSsIygVjACAAAAAAMinHEu4wkbeOpdZbXQ94q5o5pIEubqXUDrTRYOGmJC0AAzE4AH0AAAAFZAAgAAAAAAh3WpeMVlikPFYj9hLj+fmIqVt6omCSF75W3TPExyWpBXMAIAAAAAAsQkRmwqeVj2gGE03orb6PtrIzDt6dDU3hgSQi8E2wKgVjACAAAAAAvlZo8Qj3eAdxzZxN5sHKhxi+a9Npj7cZC5+pE6qrOawAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: find
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "mVZb+Ra0EYjQ4Zrh9X//E2T8MRj7NMqm5GUJXhRrBEI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "MgwakFvPyBlwqFTbhWUF79URJQWFoJTGotlEVSPPUsQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "DyBERpMSD5lEM5Nhpcn4WGgxgn/mkUVJp+PYSLX5jsE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "I43iazc0xj1WVbYB/V+uTL/tughN1bBlxh1iypBnNsA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wjOBa/ATMuOywFmuPgC0GF/oeLqu0Z7eK5udzkTPbis=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "gRQVwiR+m+0Vg8ZDXqrQQcVnTyobwCXNaA4BCJVXtMc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "WUZ6huwx0ZbLb0R00uiC9FOJzsUocUN8qE5+YRenkvQ=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "7s79aKEuPgQcS/YPOOVcYNZvHIo7FFsWtFCrnDKXefA=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Update.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Update.json
new file mode 100644
index 00000000000..300202e2274
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Update.json
@@ -0,0 +1,612 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range DoublePrecision. Update.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$numberDouble": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "updateOne",
+ "arguments": {
+ "filter": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$numberDouble": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedDoublePrecision": {
+ "$numberDouble": "2"
+ }
+ }
+ }
+ },
+ "result": {
+ "matchedCount": 1,
+ "modifiedCount": 1,
+ "upsertedCount": 0
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command_name": "update",
+ "command": {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedDoublePrecision",
+ "bsonType": "double",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberDouble": "0.0"
+ },
+ "max": {
+ "$numberDouble": "200.0"
+ },
+ "precision": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDoublePrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0OKSXELxPP85SBVwDGf3LtMEQCJ8TTkFUl/+6jlkdb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uEw0lpQtBppR3vqV9j9+NQRSBF1BzZukb8c9IhyWvxc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zVhZ7Q59O087ji49oMJvBIgeir2oqvUpnh4p53GcTow=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dowrzKs+qJhRMZyKDbhjXbuX43FbmUKOaw9I8YlOZDw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ep5B6cska6THLIF7Mn3tn3RvV9EiwLSt0eZM/CLRUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "URNp/YmmDh5wIZUfAzzgPyJeMNiVx9PMsz52DZRujGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wlM4IAQhhKQEzoVqS8b1Ddd50GB95OFb9LnzOwyjCP4=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Update.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Update.yml
new file mode 100644
index 00000000000..116b623ac0d
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-DoublePrecision-Update.yml
@@ -0,0 +1,344 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDoublePrecision', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberDouble': '0.0'}, 'max': {'$numberDouble': '200.0'}, 'precision': {'$numberInt': '2'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range DoublePrecision. Update."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedDoublePrecision: { $numberDouble: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedDoublePrecision: { $numberDouble: "1" } }
+ - name: updateOne
+ arguments:
+ filter: { encryptedDoublePrecision: { $gt: { $numberDouble: "0" } } }
+ update: { "$set": { "encryptedDoublePrecision": { $numberDouble: "2" } }}
+ result:
+ matchedCount: 1
+ modifiedCount: 1
+ upsertedCount: 0
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedDoublePrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedDoublePrecision": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command_name: update
+ command:
+ {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedDoublePrecision": {
+ "$gt": {
+ "$binary": {
+ "base64": "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",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedDoublePrecision": { $$type: "binData" }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": *encrypted_fields
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedDoublePrecision": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedDoublePrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Dri0CXmL78L2DOgk9w0DwxHOMGMzih7m6l59vgy+WWo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "b7d8mRzD1kI1tdc7uNL+YAUonJ6pODLsRLkArfEKSkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "Xg8C1/A0KJaXOw4i+26Rv03/CydaaunOzXh0CIT+gn8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "UoKUDw2wJYToUCcFaIs03YQSTksYR0MIOTJllwODqKc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "c/5cwAT0C5jber2xlJnWD3a5tVDy0nRtr5HG02hoFOY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wSUrRXavAGaajNeqC5mEUH1K67oYl5Wy9RNIzKjwLAM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6vrp4wWDtHEgHWR99I70WVDzevg1Fk/Pw5U8gUDa0OU=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedDoublePrecision": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "V6knyt7Zq2CG3++l75UtBx2m32iGAPjHiAe439Bf02w=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "0OKSXELxPP85SBVwDGf3LtMEQCJ8TTkFUl/+6jlkdb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uEw0lpQtBppR3vqV9j9+NQRSBF1BzZukb8c9IhyWvxc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zVhZ7Q59O087ji49oMJvBIgeir2oqvUpnh4p53GcTow=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "dowrzKs+qJhRMZyKDbhjXbuX43FbmUKOaw9I8YlOZDw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ep5B6cska6THLIF7Mn3tn3RvV9EiwLSt0eZM/CLRUDc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "URNp/YmmDh5wIZUfAzzgPyJeMNiVx9PMsz52DZRujGY=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "wlM4IAQhhKQEzoVqS8b1Ddd50GB95OFb9LnzOwyjCP4=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Aggregate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Aggregate.json
new file mode 100644
index 00000000000..536415f3feb
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Aggregate.json
@@ -0,0 +1,490 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Int. Aggregate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "aggregate": "default",
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "cursor": {},
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "aggregate"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Aggregate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Aggregate.yml
new file mode 100644
index 00000000000..163ff4f750f
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Aggregate.yml
@@ -0,0 +1,227 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedInt', 'bsonType': 'int', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberInt': '0'}, 'max': {'$numberInt': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Int. Aggregate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedInt: { $numberInt: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedInt: { $numberInt: "1" } }
+ - name: aggregate
+ arguments:
+ pipeline: [{ $match: { "encryptedInt": { $gt: {$numberInt: "0" }} } }]
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedInt": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedInt": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ aggregate: *collection_name
+ pipeline: [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ]
+ cursor: {}
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: aggregate
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedInt": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedInt": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Correctness.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Correctness.json
new file mode 100644
index 00000000000..6abd773da89
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Correctness.json
@@ -0,0 +1,1644 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "Find with $gt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gte": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$lt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$lte": {
+ "$numberInt": "1"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt below min",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$lt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "must be greater than the range minimum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt above max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "must be less than the range maximum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "0"
+ },
+ "$lt": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with full range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gte": {
+ "$numberInt": "0"
+ },
+ "$lte": {
+ "$numberInt": "200"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$in": [
+ {
+ "$numberInt": "0"
+ }
+ ]
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Insert out of range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "-1"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "value must be greater than or equal to the minimum value"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Insert min and max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 200,
+ "encryptedInt": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {},
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ },
+ {
+ "_id": 200,
+ "encryptedInt": {
+ "$numberInt": "200"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$gte": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$lt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$lte": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt below min",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$lt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": {
+ "errorContains": "must be greater than the range minimum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt above max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": {
+ "errorContains": "must be less than the range maximum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "0"
+ },
+ "$lt": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with full range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$gte": {
+ "$numberInt": "0"
+ },
+ "$lte": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedInt": {
+ "$in": [
+ {
+ "$numberInt": "0"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Insert Double",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberDouble": "0"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "cannot encrypt element"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Find Double",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gte": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "field type is not supported"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Correctness.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Correctness.yml
new file mode 100644
index 00000000000..db2a1e46a8f
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Correctness.yml
@@ -0,0 +1,421 @@
+# Test correctness results.
+# Does not include command monitoring expectations or outcome assertions to make tests more readable.
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedInt', 'bsonType': 'int', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberInt': '0'}, 'max': {'$numberInt': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "Find with $gt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedInt: { $numberInt: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedInt: { $numberInt: "1" } }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $gt: { $numberInt: "0" } }}
+ result: [*doc1]
+
+ - description: "Find with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $gte: { $numberInt: "0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $gt: { $numberInt: "1" } }}
+ result: []
+
+ - description: "Find with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $lt: { $numberInt: "1" } }}
+ result: [*doc0]
+
+ - description: "Find with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $lte: { $numberInt: "1" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $lt below min"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $lt: { $numberInt: "0" } }}
+ result:
+ errorContains: must be greater than the range minimum
+
+ - description: "Find with $gt above max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $gt: { $numberInt: "200" } }}
+ result:
+ errorContains: must be less than the range maximum
+
+ - description: "Find with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $gt: { $numberInt: "0" }, $lt: { $numberInt: "2"} }}
+ result: [*doc1]
+
+ - description: "Find with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $numberInt: "0" } }
+ result: [*doc0]
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $numberInt: "1" } }
+ result: [*doc1]
+
+ - description: "Find with full range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $gte: {$numberInt: "0"}, $lte: {$numberInt: "200"} } }
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $in: [ {$numberInt: "0"} ] } }
+ result: [*doc0]
+
+ - description: "Insert out of range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: { _id: 0, encryptedInt: { $numberInt: "-1" }}
+ result:
+ errorContains: value must be greater than or equal to the minimum value
+
+ - description: "Insert min and max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: *doc0
+ - name: insertOne
+ arguments:
+ document: &doc200 { _id: 200, encryptedInt: { $numberInt: "200" }}
+ - name: find
+ arguments:
+ filter: {}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc200]
+
+ - description: "Aggregate with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedInt: { $gte: { $numberInt: "0" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedInt: { $gt: { $numberInt: "1" } }} }
+ result: []
+
+ - description: "Aggregate with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedInt: { $lt: { $numberInt: "1" } }} }
+ result: [*doc0]
+
+ - description: "Aggregate with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedInt: { $lte: { $numberInt: "1" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $lt below min"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedInt: { $lt: { $numberInt: "0" } }} }
+ result:
+ errorContains: must be greater than the range minimum
+
+ - description: "Aggregate with $gt above max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedInt: { $gt: { $numberInt: "200" } }} }
+ result:
+ errorContains: must be less than the range maximum
+
+ - description: "Aggregate with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedInt: { $gt: { $numberInt: "0" }, $lt: { $numberInt: "2"} }} }
+ result: [*doc1]
+
+ - description: "Aggregate with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedInt: { $numberInt: "0" } } }
+ result: [*doc0]
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedInt: { $numberInt: "1" } } }
+ result: [*doc1]
+
+ - description: "Aggregate with full range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedInt: { $gte: {$numberInt: "0"}, $lte: {$numberInt: "200"} } } }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedInt: { $in: [ {$numberInt: "0"} ] } } }
+ result: [*doc0]
+
+ - description: "Wrong type: Insert Double"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: { _id: 0, encryptedInt: { $numberDouble: "0" }} }
+ result:
+ # Expect an error from mongocryptd.
+ errorContains: "cannot encrypt element"
+
+ - description: "Wrong type: Find Double"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $gte: { $numberDouble: "0" } }}
+ result:
+ # expect an error from libmongocrypt.
+ errorContains: "field type is not supported"
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Delete.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Delete.json
new file mode 100644
index 00000000000..9d5bff1d19f
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Delete.json
@@ -0,0 +1,437 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Int. Delete.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "deleteOne",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ "result": {
+ "deletedCount": 1
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "delete": "default",
+ "deletes": [
+ {
+ "q": {
+ "encryptedInt": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedInt": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "delete"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Delete.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Delete.yml
new file mode 100644
index 00000000000..51a343493f1
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Delete.yml
@@ -0,0 +1,185 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedInt', 'bsonType': 'int', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberInt': '0'}, 'max': {'$numberInt': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Int. Delete."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedInt: { $numberInt: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedInt: { $numberInt: "1" } }
+ - name: deleteOne
+ arguments:
+ filter: { "encryptedInt": { $gt: {$numberInt: "0" }} }
+ result:
+ deletedCount: 1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedInt": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedInt": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ delete: *collection_name
+ deletes: [
+ {
+ "q": {
+ "encryptedInt": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ]
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedInt": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: delete
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedInt": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-FindOneAndUpdate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-FindOneAndUpdate.json
new file mode 100644
index 00000000000..4bf57700c94
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-FindOneAndUpdate.json
@@ -0,0 +1,512 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Int. FindOneAndUpdate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "findOneAndUpdate",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedInt": {
+ "$numberInt": "2"
+ }
+ }
+ },
+ "returnDocument": "Before"
+ },
+ "result": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "findAndModify": "default",
+ "query": {
+ "encryptedInt": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedInt": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "findAndModify"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-FindOneAndUpdate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-FindOneAndUpdate.yml
new file mode 100644
index 00000000000..433be15d310
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-FindOneAndUpdate.yml
@@ -0,0 +1,243 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedInt', 'bsonType': 'int', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberInt': '0'}, 'max': {'$numberInt': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Int. FindOneAndUpdate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedInt: { $numberInt: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedInt: { $numberInt: "1" } }
+ - name: findOneAndUpdate
+ arguments:
+ filter: { encryptedInt: { $gt: {$numberInt: "0"}} }
+ update: { "$set": { "encryptedInt": {$numberInt: "2"}}}
+ returnDocument: Before
+ result: *doc1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedInt": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedInt": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ findAndModify: *collection_name
+ query: {
+ "encryptedInt": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ update: { "$set": {"encryptedInt": { $$type: "binData" }} }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedInt": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: findAndModify
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedInt": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedInt": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-InsertFind.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-InsertFind.json
new file mode 100644
index 00000000000..6f6022e7490
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-InsertFind.json
@@ -0,0 +1,481 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Int. Insert and Find.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "default",
+ "filter": {
+ "encryptedInt": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "find"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-InsertFind.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-InsertFind.yml
new file mode 100644
index 00000000000..dc5215eae64
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-InsertFind.yml
@@ -0,0 +1,221 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedInt', 'bsonType': 'int', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberInt': '0'}, 'max': {'$numberInt': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Int. Insert and Find."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedInt: { $numberInt: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedInt: { $numberInt: "1" } }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $gt: { $numberInt: "0" } } }
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedInt": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedInt": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ find: *collection_name
+ filter:
+ "encryptedInt": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: find
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedInt": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedInt": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Update.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Update.json
new file mode 100644
index 00000000000..17d23b957f8
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Update.json
@@ -0,0 +1,516 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Int. Update.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedInt": {
+ "$numberInt": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "updateOne",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gt": {
+ "$numberInt": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedInt": {
+ "$numberInt": "2"
+ }
+ }
+ }
+ },
+ "result": {
+ "matchedCount": 1,
+ "modifiedCount": 1,
+ "upsertedCount": 0
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command_name": "update",
+ "command": {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedInt": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedInt": {
+ "$$type": "binData"
+ }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedInt": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedInt": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedInt": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Update.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Update.yml
new file mode 100644
index 00000000000..8e0bdcb8dc6
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Int-Update.yml
@@ -0,0 +1,260 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedInt', 'bsonType': 'int', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberInt': '0'}, 'max': {'$numberInt': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Int. Update."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedInt: { $numberInt: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedInt: { $numberInt: "1" } }
+ - name: updateOne
+ arguments:
+ filter: { encryptedInt: { $gt: { $numberInt: "0" } } }
+ update: { "$set": { "encryptedInt": { $numberInt: "2" } }}
+ result:
+ matchedCount: 1
+ modifiedCount: 1
+ upsertedCount: 0
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedInt": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedInt": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command_name: update
+ command:
+ {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedInt": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedInt": { $$type: "binData" }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": *encrypted_fields
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedInt": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedInt": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedInt": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Aggregate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Aggregate.json
new file mode 100644
index 00000000000..3f1c723bd29
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Aggregate.json
@@ -0,0 +1,490 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Long. Aggregate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "aggregate": "default",
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ],
+ "cursor": {},
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "aggregate"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Aggregate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Aggregate.yml
new file mode 100644
index 00000000000..8064fbeddd1
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Aggregate.yml
@@ -0,0 +1,227 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedLong', 'bsonType': 'long', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberLong': '0'}, 'max': {'$numberLong': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Long. Aggregate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedLong: { $numberLong: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedLong: { $numberLong: "1" } }
+ - name: aggregate
+ arguments:
+ pipeline: [{ $match: { "encryptedLong": { $gt: {$numberLong: "0" }} } }]
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedLong": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedLong": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ aggregate: *collection_name
+ pipeline: [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ }
+ ]
+ cursor: {}
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: aggregate
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedLong": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedLong": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Correctness.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Correctness.json
new file mode 100644
index 00000000000..972388c6c43
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Correctness.json
@@ -0,0 +1,1644 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "Find with $gt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$gte": {
+ "$numberLong": "0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$lt": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$lte": {
+ "$numberLong": "1"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $lt below min",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$lt": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "must be greater than the range minimum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt above max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "must be less than the range maximum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Find with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "0"
+ },
+ "$lt": {
+ "$numberLong": "2"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with full range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$gte": {
+ "$numberLong": "0"
+ },
+ "$lte": {
+ "$numberLong": "200"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Find with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$in": [
+ {
+ "$numberLong": "0"
+ }
+ ]
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Insert out of range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "-1"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "value must be greater than or equal to the minimum value"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Insert min and max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 200,
+ "encryptedLong": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {},
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ },
+ {
+ "_id": 200,
+ "encryptedLong": {
+ "$numberLong": "200"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$gte": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt with no results",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": []
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$lt": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lte",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$lte": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $lt below min",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$lt": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": {
+ "errorContains": "must be greater than the range minimum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt above max",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": {
+ "errorContains": "must be less than the range maximum"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $gt and $lt",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "0"
+ },
+ "$lt": {
+ "$numberLong": "2"
+ }
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with equality",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ ]
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with full range",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$gte": {
+ "$numberLong": "0"
+ },
+ "$lte": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ },
+ {
+ "$sort": {
+ "_id": 1
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ },
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Aggregate with $in",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "aggregate",
+ "arguments": {
+ "pipeline": [
+ {
+ "$match": {
+ "encryptedLong": {
+ "$in": [
+ {
+ "$numberLong": "0"
+ }
+ ]
+ }
+ }
+ }
+ ]
+ },
+ "result": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Insert Double",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberDouble": "0"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "cannot encrypt element"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Find Double",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$gte": {
+ "$numberDouble": "0"
+ }
+ }
+ }
+ },
+ "result": {
+ "errorContains": "field type is not supported"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Correctness.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Correctness.yml
new file mode 100644
index 00000000000..696a09fa10d
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Correctness.yml
@@ -0,0 +1,420 @@
+# Test correctness results.
+# Does not include command monitoring expectations or outcome assertions to make tests more readable.
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedLong', 'bsonType': 'long', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberLong': '0'}, 'max': {'$numberLong': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "Find with $gt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedLong: { $numberLong: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedLong: { $numberLong: "1" } }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $gt: { $numberLong: "0" } }}
+ result: [*doc1]
+
+ - description: "Find with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $gte: { $numberLong: "0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $gt: { $numberLong: "1" } }}
+ result: []
+
+ - description: "Find with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $lt: { $numberLong: "1" } }}
+ result: [*doc0]
+
+ - description: "Find with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $lte: { $numberLong: "1" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $lt below min"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $lt: { $numberLong: "0" } }}
+ result:
+ errorContains: must be greater than the range minimum
+
+ - description: "Find with $gt above max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $gt: { $numberLong: "200" } }}
+ result:
+ errorContains: must be less than the range maximum
+
+ - description: "Find with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $gt: { $numberLong: "0" }, $lt: { $numberLong: "2"} }}
+ result: [*doc1]
+
+ - description: "Find with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $numberLong: "0" } }
+ result: [*doc0]
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $numberLong: "1" } }
+ result: [*doc1]
+
+ - description: "Find with full range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $gte: {$numberLong: "0"}, $lte: {$numberLong: "200"} } }
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc1]
+
+ - description: "Find with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $in: [ {$numberLong: "0"} ] } }
+ result: [*doc0]
+
+ - description: "Insert out of range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: { _id: 0, encryptedLong: { $numberLong: "-1" }}
+ result:
+ errorContains: value must be greater than or equal to the minimum value
+
+ - description: "Insert min and max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: *doc0
+ - name: insertOne
+ arguments:
+ document: &doc200 { _id: 200, encryptedLong: { $numberLong: "200" }}
+ - name: find
+ arguments:
+ filter: {}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result: [*doc0, *doc200]
+
+ - description: "Aggregate with $gte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedLong: { $gte: { $numberLong: "0" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $gt with no results"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedLong: { $gt: { $numberLong: "1" } }} }
+ result: []
+
+ - description: "Aggregate with $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedLong: { $lt: { $numberLong: "1" } }} }
+ result: [*doc0]
+
+ - description: "Aggregate with $lte"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedLong: { $lte: { $numberLong: "1" } }} }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $lt below min"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedLong: { $lt: { $numberLong: "0" } }} }
+ result:
+ errorContains: must be greater than the range minimum
+
+ - description: "Aggregate with $gt above max"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedLong: { $gt: { $numberLong: "200" } }} }
+ result:
+ errorContains: must be less than the range maximum
+
+ - description: "Aggregate with $gt and $lt"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedLong: { $gt: { $numberLong: "0" }, $lt: { $numberLong: "2"} }} }
+ result: [*doc1]
+
+ - description: "Aggregate with equality"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedLong: { $numberLong: "0" } } }
+ result: [*doc0]
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedLong: { $numberLong: "1" } } }
+ result: [*doc1]
+
+ - description: "Aggregate with full range"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedLong: { $gte: {$numberLong: "0"}, $lte: {$numberLong: "200"} } } }
+ # sort so results from range queries are ordered.
+ - { $sort: { _id: 1 }}
+ result: [*doc0, *doc1]
+
+ - description: "Aggregate with $in"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: *doc0 }
+ - name: insertOne
+ arguments: { document: *doc1 }
+ - name: aggregate
+ arguments:
+ pipeline:
+ - { $match: { encryptedLong: { $in: [ {$numberLong: "0"} ] } } }
+ result: [*doc0]
+
+ - description: "Wrong type: Insert Double"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: { _id: 0, encryptedLong: { $numberDouble: "0" }} }
+ result:
+ # Expect an error from mongocryptd.
+ errorContains: "cannot encrypt element"
+
+ - description: "Wrong type: Find Double"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $gte: { $numberDouble: "0" } }}
+ result:
+ # expect an error from libmongocrypt.
+ errorContains: "field type is not supported"
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Delete.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Delete.json
new file mode 100644
index 00000000000..89e18984065
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Delete.json
@@ -0,0 +1,437 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Long. Delete.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "deleteOne",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ "result": {
+ "deletedCount": 1
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "delete": "default",
+ "deletes": [
+ {
+ "q": {
+ "encryptedLong": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedLong": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "delete"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Delete.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Delete.yml
new file mode 100644
index 00000000000..12080d60aef
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Delete.yml
@@ -0,0 +1,185 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedLong', 'bsonType': 'long', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberLong': '0'}, 'max': {'$numberLong': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Long. Delete."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedLong: { $numberLong: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedLong: { $numberLong: "1" } }
+ - name: deleteOne
+ arguments:
+ filter: { "encryptedLong": { $gt: {$numberLong: "0" }} }
+ result:
+ deletedCount: 1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedLong": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedLong": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ delete: *collection_name
+ deletes: [
+ {
+ "q": {
+ "encryptedLong": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "limit": 1
+ }
+ ]
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedLong": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: delete
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedLong": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-FindOneAndUpdate.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-FindOneAndUpdate.json
new file mode 100644
index 00000000000..59342a343ad
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-FindOneAndUpdate.json
@@ -0,0 +1,512 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Long. FindOneAndUpdate.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "findOneAndUpdate",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedLong": {
+ "$numberLong": "2"
+ }
+ }
+ },
+ "returnDocument": "Before"
+ },
+ "result": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "findAndModify": "default",
+ "query": {
+ "encryptedLong": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedLong": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "command_name": "findAndModify"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-FindOneAndUpdate.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-FindOneAndUpdate.yml
new file mode 100644
index 00000000000..a90e09c47c4
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-FindOneAndUpdate.yml
@@ -0,0 +1,243 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedLong', 'bsonType': 'long', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberLong': '0'}, 'max': {'$numberLong': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Long. FindOneAndUpdate."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedLong: { $numberLong: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedLong: { $numberLong: "1" } }
+ - name: findOneAndUpdate
+ arguments:
+ filter: { encryptedLong: { $gt: {$numberLong: "0"}} }
+ update: { "$set": { "encryptedLong": {$numberLong: "2"}}}
+ returnDocument: Before
+ result: *doc1
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedLong": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedLong": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ findAndModify: *collection_name
+ query: {
+ "encryptedLong": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ }
+ update: { "$set": {"encryptedLong": { $$type: "binData" }} }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ "deleteTokens": {
+ "default.default": {
+ "encryptedLong": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ command_name: findAndModify
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedLong": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedLong": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-InsertFind.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-InsertFind.json
new file mode 100644
index 00000000000..882e52170d2
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-InsertFind.json
@@ -0,0 +1,481 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Long. Insert and Find.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ "result": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ ]
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "default",
+ "filter": {
+ "encryptedLong": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "find"
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-InsertFind.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-InsertFind.yml
new file mode 100644
index 00000000000..f0c79b21dc7
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-InsertFind.yml
@@ -0,0 +1,221 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedLong', 'bsonType': 'long', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberLong': '0'}, 'max': {'$numberLong': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Long. Insert and Find."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedLong: { $numberLong: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedLong: { $numberLong: "1" } }
+ - name: find
+ arguments:
+ filter: { encryptedLong: { $gt: { $numberLong: "0" } } }
+ result: [*doc1]
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedLong": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedLong": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ find: *collection_name
+ filter:
+ "encryptedLong": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: find
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedLong": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedLong": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "bE1vqWj3KNyM7cCYUv/cnYm8BPaUL3eMp5syTHq6NF4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "25j9sQXZCihCmHKvTHgaBsAVZFcGPn7JjHdrCGlwyyw=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FA74j21GUEJb1DJBOpR9nVnjaDZnd8yAQNuaW9Qi26g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kJv//KVkbrobIBf+QeWC5jxn20mx/P0R1N6aCSMgKM8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "zB+Whi9IUUGxfLEe+lGuIzLX4LFbIhaIAm5lRk65QTc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ybO1QU3CgvhO8JgRXH+HxKszWcpl5aGDYYVa75fHa1g=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "X3Y3eSAbbMg//JgiHHiFpYOpV61t8kkDexI+CQyitH4=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "SlNHXyqVFGDPrX/2ppwog6l4pwj3PKda2TkZbqgfSfA=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "McjV8xwTF3xI7863DYOBdyvIv6UpzThl6v9vBRk05bI=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Update.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Update.json
new file mode 100644
index 00000000000..92e3e390a5f
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Update.json
@@ -0,0 +1,516 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "FLE2 Range Long. Update.",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedLong": {
+ "$numberLong": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 1,
+ "encryptedLong": {
+ "$numberLong": "1"
+ }
+ }
+ }
+ },
+ {
+ "name": "updateOne",
+ "arguments": {
+ "filter": {
+ "encryptedLong": {
+ "$gt": {
+ "$numberLong": "0"
+ }
+ }
+ },
+ "update": {
+ "$set": {
+ "encryptedLong": {
+ "$numberLong": "2"
+ }
+ }
+ }
+ },
+ "result": {
+ "matchedCount": 1,
+ "modifiedCount": 1,
+ "upsertedCount": 0
+ }
+ }
+ ],
+ "expectations": [
+ {
+ "command_started_event": {
+ "command": {
+ "listCollections": 1,
+ "filter": {
+ "name": "default"
+ }
+ },
+ "command_name": "listCollections"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "find": "datakeys",
+ "filter": {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ }
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ },
+ "$db": "keyvault",
+ "readConcern": {
+ "level": "majority"
+ }
+ },
+ "command_name": "find"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command": {
+ "insert": "default",
+ "documents": [
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ ],
+ "ordered": true,
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+ },
+ "command_name": "insert"
+ }
+ },
+ {
+ "command_started_event": {
+ "command_name": "update",
+ "command": {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedLong": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedLong": {
+ "$$type": "binData"
+ }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedLong",
+ "bsonType": "long",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberLong": "0"
+ },
+ "max": {
+ "$numberLong": "200"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedLong": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+ }
+ }
+ ],
+ "outcome": {
+ "collection": {
+ "data": [
+ {
+ "_id": 0,
+ "encryptedLong": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ },
+ {
+ "_id": 1,
+ "encryptedLong": {
+ "$$type": "binData"
+ },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ ]
+ }
+ }
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Update.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Update.yml
new file mode 100644
index 00000000000..20783a7cdd2
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-Long-Update.yml
@@ -0,0 +1,260 @@
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedLong', 'bsonType': 'long', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberLong': '0'}, 'max': {'$numberLong': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "FLE2 Range Long. Update."
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments:
+ document: &doc0 { _id: 0, encryptedLong: { $numberLong: "0" } }
+ - name: insertOne
+ arguments:
+ document: &doc1 { _id: 1, encryptedLong: { $numberLong: "1" } }
+ - name: updateOne
+ arguments:
+ filter: { encryptedLong: { $gt: { $numberLong: "0" } } }
+ update: { "$set": { "encryptedLong": { $numberLong: "2" } }}
+ result:
+ matchedCount: 1
+ modifiedCount: 1
+ upsertedCount: 0
+ expectations:
+ - command_started_event:
+ command:
+ listCollections: 1
+ filter:
+ name: *collection_name
+ command_name: listCollections
+ - command_started_event:
+ command:
+ find: datakeys
+ filter: {
+ "$or": [
+ {
+ "_id": {
+ "$in": [
+ {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}
+ ]
+ }
+ },
+ {
+ "keyAltNames": {
+ "$in": []
+ }
+ }
+ ]
+ }
+ $db: keyvault
+ readConcern: { level: "majority" }
+ command_name: find
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc0_encrypted { "_id": 0, "encryptedLong": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command:
+ insert: *collection_name
+ documents:
+ - &doc1_encrypted { "_id": 1, "encryptedLong": { $$type: "binData" } }
+ ordered: true
+ encryptionInformation:
+ type: 1
+ schema:
+ default.default: *encrypted_fields
+ command_name: insert
+ - command_started_event:
+ command_name: update
+ command:
+ {
+ "update": "default",
+ "ordered": true,
+ "updates": [
+ {
+ "q": {
+ "encryptedLong": {
+ "$gt": {
+ "$binary": {
+ "base64": "CnEFAAADcGF5bG9hZABBBQAABGcABQUAAAMwAH0AAAAFZAAgAAAAALGGQ/CRD+pGLD53BZzWcCcYbuGLVEyjzXIx7b+ux/q2BXMAIAAAAACOC6mXEZL27P9hethZbtKYsTXKK+FpgQ9Axxmn9N/cCwVjACAAAAAAKs6X8gaa+AJ6PpxVicsk7iCXpSYIkQ5zB0KnXqlfCWgAAzEAfQAAAAVkACAAAAAAtL3QIvnZqCF72eS6lKr8ilff7R6kiNklokiTuaU5wNsFcwAgAAAAAEtqr3/X731VB+VrbFcY8ZrJKRo2E0Fd+C8L0EMNcvcCBWMAIAAAAABYTWOKsDZ7cgPhiKDR2bE5CFGz4MuEwZbzZ0z46eGzBQADMgB9AAAABWQAIAAAAAB99ZW/7KwXKzl5M3XQsAJ3JbEef90IoxFYBArNiYzlgQVzACAAAAAAYO/qaw0+92HAryxOUG7iK6hnIy3OaUA9jIqtHdvcq8YFYwAgAAAAABSqgKlxv5LXoxUO3zNmqGztlZhL2S150WiR/eycv7CWAAMzAH0AAAAFZAAgAAAAAOK8brUuc2onBNDRtfYMR736dHj4dQqXod8JG7tAMTsDBXMAIAAAAAAW6SrGAL6Bx0s7ZlsYULFfOAiYIGhEWu6md3r+Rk40awVjACAAAAAAfsofSP7nQHv8ic8ZW0aNlWxplS46Z+mywPR4rQk+wcgAAzQAfQAAAAVkACAAAAAAV22FGF7ZDwK/EYiGNMlm/QuT3saQdyJM/Fn+ZyQug1oFcwAgAAAAACo7GwCvbcs5UHQMgds9/1QMklEVdjZigpuOFGrDmmxtBWMAIAAAAADu3L42J/oqNLe/XNYpodf2fhmPdcLhqO4J24o0hiveXwADNQB9AAAABWQAIAAAAADFspsMG7yHjKppyllon1KqAsTrHaZ6JzNqnSz8o6iTvwVzACAAAAAAeiA5pqVIQQ9s6UY/P8v5Jjkl3I7iFNeLDYehikrINrsFYwAgAAAAAAUljtCIvjRnLB2UPTEeRIz11Snl5SOBUNaXMXig4rqKAAM2AH0AAAAFZAAgAAAAAPcLmtq+V1e+MRlZ7NHq1+mrRVBQje5zj685ZvdsfKvSBXMAIAAAAABdHz/3w2k5km97QN9m7oLFYJaVJneNlMboIlz5yUASQAVjACAAAAAAD51NYesiO4Fo7w7iWBfqAFxEqkaDVctpvzZ28nT4SE8AAzcAfQAAAAVkACAAAAAAYfLwnoxK6XAGQrJFy8+TIJoq38ldBaO75h4zA4ZX5tQFcwAgAAAAAC2wk8UcJH5X5XGnDBYmel6srpBkzBhHtt3Jw1u5TSJ1BWMAIAAAAABJDtFhJ2tPbowp1UUmOCN/rqSqHRL1dtMu0c47vIlK4wADOAB9AAAABWQAIAAAAADGvyrtKkIcaV17ynZA7b2k5Pz6OhvxdWNkDvDWJIja8wVzACAAAAAAOLypVKNxf/wR1G8OZjUUsTQzDYeNNhhITxGMSp7euS4FYwAgAAAAAE6kvmXPqTnYIH4EJmNhy8OLVJZFOmdiBXLMorhELjKWAAM5AH0AAAAFZAAgAAAAAEocREw1L0g+roFUchJI2Yd0M0ME2bnErNUYnpyJP1SqBXMAIAAAAAAcE2/JK/8MoSeOchIuAkKh1X3ImoA7p8ujAZIfvIDo6QVjACAAAAAA85AiE+bNFAYQTXQAFexgeczdVhf8FUnf16WzJlI/kmsAAAVlACAAAAAA65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+wSY20AAAAAAAAAAAAAEHBheWxvYWRJZAAAAAAAEGZpcnN0T3BlcmF0b3IAAQAAAAA=",
+ "subType": "06"
+ }
+ }
+ }
+ },
+ "u": {
+ "$set": {
+ "encryptedLong": { $$type: "binData" }
+ }
+ }
+ }
+ ],
+ "encryptionInformation": {
+ "type": 1,
+ "schema": {
+ "default.default": *encrypted_fields
+ },
+ "deleteTokens": {
+ "default.default": {
+ "encryptedLong": {
+ "e": {
+ "$binary": {
+ "base64": "65pz95EthqQpfoHS9nWvdCh05AV+OokP7GUaI+7j8+w=",
+ "subType": "00"
+ }
+ },
+ "o": {
+ "$binary": {
+ "base64": "noN+05JsuO1oDg59yypIGj45i+eFH6HOTXOPpeZ//Mk=",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "$db": "default"
+ }
+
+ outcome:
+ collection:
+ # Outcome is checked using a separate MongoClient without auto encryption.
+ data:
+ -
+ {
+ "_id": 0,
+ "encryptedLong": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "5nRutVIyq7URVOVtbE4vM01APSIajAVnsShMwjBlzkM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "RjBYT2h3ZAoHxhf8DU6/dFbDkEBZp0IxREcsRTu2MXs=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "x7GR49EN0t3WXQDihkrbonK7qNIBYC87tpL/XEUyIYc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "JfYUqWF+OoGjiYkRI4L5iPlF+T1Eleul7Fki22jp4Qc=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "q1RyGfIgsaQHoZFRw+DD28V26rN5hweApPLwExncvT8=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "L2PFeKGvLS6C+DLudR6fGlBq3ERPvjWvRyNRIA2HVb0=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "CWxaNqL3iP1yCixDkcmf9bmW3E5VeN8TJkg1jJe528s=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "+vC6araOEo+fpW7PSIP40/EnzBCj1d2N10Jr3rrXJJM=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "6SV63Mf51Z6A6p2X3rCnJKCu6ku3Oeb45mBYbz+IoAo=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
+ -
+ {
+ "_id": 1,
+ "encryptedLong": { $$type: "binData" },
+ "__safeContent__": [
+ {
+ "$binary": {
+ "base64": "DLCAJs+W2PL2DV5YChCL6dYrQNr+j4p3L7xhVaub4ic=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "hyDcE6QQjPrYJaIS/n7evEZFYcm31Tj89CpEYGF45cI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "F08nMDWDZc+DbWM7XCEJNNCEYyinRmrvGP7EWhmp4is=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "cXH4688amcDc8kZOJq4UP8cE3R58Zl7e+Qo/1jyspps=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "uURBxvTp3FBCVkd+LPqyuY7d6rMW6SGIJQEPY/wtkZI=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "jG3hax1L3RBp9t38vUt53FsBxgr/+Si/vVISpAylYpE=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "kwtIW8MhH9Ky5xNjBx8gFA/SHh2YVphie7g5FGBzals=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "FHflwFuEMu4xX0ZApHi+pdlBH+oevAtXckCUb5Wv0xU=",
+ "subType": "00"
+ }
+ },
+ {
+ "$binary": {
+ "base64": "ty4cnzJdAlbQKnh7px3GEYjBnvO+jIOaKjoTRDtmh3M=",
+ "subType": "00"
+ }
+ }
+ ]
+ }
\ No newline at end of file
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-WrongType.json b/specifications/client-side-encryption/tests/legacy/fle2-Range-WrongType.json
new file mode 100644
index 00000000000..9eddf1c99c1
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-WrongType.json
@@ -0,0 +1,162 @@
+{
+ "runOn": [
+ {
+ "minServerVersion": "6.2.0",
+ "topology": [
+ "replicaset",
+ "sharded",
+ "load-balanced"
+ ]
+ }
+ ],
+ "database_name": "default",
+ "collection_name": "default",
+ "data": [],
+ "encrypted_fields": {
+ "escCollection": "enxcol_.default.esc",
+ "eccCollection": "enxcol_.default.ecc",
+ "ecocCollection": "enxcol_.default.ecoc",
+ "fields": [
+ {
+ "keyId": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "path": "encryptedInt",
+ "bsonType": "int",
+ "queries": {
+ "queryType": "rangePreview",
+ "contention": {
+ "$numberLong": "0"
+ },
+ "sparsity": {
+ "$numberLong": "1"
+ },
+ "min": {
+ "$numberInt": "0"
+ },
+ "max": {
+ "$numberInt": "200"
+ }
+ }
+ }
+ ]
+ },
+ "key_vault_data": [
+ {
+ "_id": {
+ "$binary": {
+ "base64": "EjRWeBI0mHYSNBI0VniQEg==",
+ "subType": "04"
+ }
+ },
+ "keyMaterial": {
+ "$binary": {
+ "base64": "sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==",
+ "subType": "00"
+ }
+ },
+ "creationDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "updateDate": {
+ "$date": {
+ "$numberLong": "1648914851981"
+ }
+ },
+ "status": {
+ "$numberInt": "0"
+ },
+ "masterKey": {
+ "provider": "local"
+ }
+ }
+ ],
+ "tests": [
+ {
+ "description": "Wrong type: Insert Double",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberDouble": "0"
+ }
+ }
+ },
+ "result": {
+ "errorContains": "cannot encrypt element"
+ }
+ }
+ ]
+ },
+ {
+ "description": "Wrong type: Find Double",
+ "clientOptions": {
+ "autoEncryptOpts": {
+ "kmsProviders": {
+ "local": {
+ "key": {
+ "$binary": {
+ "base64": "Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk",
+ "subType": "00"
+ }
+ }
+ }
+ }
+ }
+ },
+ "operations": [
+ {
+ "name": "insertOne",
+ "arguments": {
+ "document": {
+ "_id": 0,
+ "encryptedInt": {
+ "$numberInt": "0"
+ }
+ }
+ }
+ },
+ {
+ "name": "find",
+ "arguments": {
+ "filter": {
+ "encryptedInt": {
+ "$gte": {
+ "$numberDouble": "0"
+ }
+ }
+ },
+ "sort": {
+ "_id": 1
+ }
+ },
+ "result": {
+ "errorContains": "field type is not supported"
+ }
+ }
+ ]
+ }
+ ]
+}
diff --git a/specifications/client-side-encryption/tests/legacy/fle2-Range-WrongType.yml b/specifications/client-side-encryption/tests/legacy/fle2-Range-WrongType.yml
new file mode 100644
index 00000000000..9bc2c53dfdf
--- /dev/null
+++ b/specifications/client-side-encryption/tests/legacy/fle2-Range-WrongType.yml
@@ -0,0 +1,41 @@
+# Test correctness results.
+# Does not include command monitoring expectations or outcome assertions to make tests more readable.
+# Requires libmongocrypt 1.7.0.
+runOn:
+ - minServerVersion: "6.2.0"
+ # FLE 2 Encrypted collections are not supported on standalone.
+ topology: [ "replicaset", "sharded", "load-balanced" ]
+database_name: &database_name "default"
+collection_name: &collection_name "default"
+data: []
+encrypted_fields: &encrypted_fields {'escCollection': 'enxcol_.default.esc', 'eccCollection': 'enxcol_.default.ecc', 'ecocCollection': 'enxcol_.default.ecoc', 'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedInt', 'bsonType': 'int', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}, 'min': {'$numberInt': '0'}, 'max': {'$numberInt': '200'}}}]}
+key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
+tests:
+ - description: "Wrong type: Insert Double"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: { _id: 0, encryptedInt: { $numberDouble: "0" }} }
+ result:
+ # Expect an error from mongocryptd.
+ errorContains: "cannot encrypt element"
+
+ - description: "Wrong type: Find Double"
+ clientOptions:
+ autoEncryptOpts:
+ kmsProviders:
+ local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
+ operations:
+ - name: insertOne
+ arguments: { document: { _id: 0, encryptedInt: { $numberInt: "0" }} }
+ - name: find
+ arguments:
+ filter: { encryptedInt: { $gte: { $numberDouble: "0" } }}
+ # sort so results from range queries are ordered.
+ sort: { _id: 1 }
+ result:
+ # expect an error from libmongocrypt.
+ errorContains: "field type is not supported"
\ No newline at end of file
diff --git a/src/MongoDB.Driver.Core/Core/Misc/Feature.cs b/src/MongoDB.Driver.Core/Core/Misc/Feature.cs
index 3c27d7ab392..9fb626e26ca 100644
--- a/src/MongoDB.Driver.Core/Core/Misc/Feature.cs
+++ b/src/MongoDB.Driver.Core/Core/Misc/Feature.cs
@@ -57,6 +57,7 @@ public class Feature
private static readonly Feature __createIndexCommitQuorum = new Feature("CreateIndexCommitQuorum", WireVersion.Server44);
private static readonly Feature __createIndexesCommand = new Feature("CreateIndexesCommand", WireVersion.Server26);
private static readonly Feature __createIndexesUsingInsertOperations = new Feature("CreateIndexesUsingInsertOperations", WireVersion.Zero, WireVersion.Server42);
+ private static readonly Feature __csfleRangeAlgorithm = new Feature("CsfleRangeAlgorithm", WireVersion.Server62);
private static readonly Feature __csfle2 = new Feature("Csfle2", WireVersion.Server60);
private static readonly Feature __currentOpCommand = new Feature("CurrentOpCommand", WireVersion.Server32);
private static readonly Feature __dateOperatorsNewIn50 = new Feature("DateOperatorsNewIn50", WireVersion.Server50);
@@ -317,6 +318,11 @@ public class Feature
///
public static Feature CreateIndexesUsingInsertOperations => __createIndexesUsingInsertOperations;
+ ///
+ /// Gets the csfle range algorithm feature.
+ ///
+ public static Feature CsfleRangeAlgorithm => __csfleRangeAlgorithm;
+
///
/// Gets the client side field level encryption 2 feature.
///
diff --git a/src/MongoDB.Driver.Core/Core/Misc/WireVersion.cs b/src/MongoDB.Driver.Core/Core/Misc/WireVersion.cs
index 72bd6c5cf37..b3440a1f3ea 100644
--- a/src/MongoDB.Driver.Core/Core/Misc/WireVersion.cs
+++ b/src/MongoDB.Driver.Core/Core/Misc/WireVersion.cs
@@ -92,6 +92,10 @@ internal static class WireVersion
/// Wire version 18.
///
public const int Server61 = 18;
+ ///
+ /// Wire version 19.
+ ///
+ public const int Server62 = 19;
#region static
private static List __knownWireVersions = new()
@@ -119,10 +123,11 @@ internal static class WireVersion
new WireVersionInfo(wireVersion: 15, major: 5, minor: 2),
new WireVersionInfo(wireVersion: 16, major: 5, minor: 3),
new WireVersionInfo(wireVersion: 17, major: 6, minor: 0),
- new WireVersionInfo(wireVersion: 18, major: 6, minor: 1)
+ new WireVersionInfo(wireVersion: 18, major: 6, minor: 1),
+ new WireVersionInfo(wireVersion: 19, major: 6, minor: 2)
};
- private static Range __supportedWireVersionRange = CreateSupportedWireVersionRange(minWireVersion: 6, maxWireVersion: 18);
+ private static Range __supportedWireVersionRange = CreateSupportedWireVersionRange(minWireVersion: 6, maxWireVersion: 19);
private static Range CreateSupportedWireVersionRange(int minWireVersion, int maxWireVersion)
{
diff --git a/src/MongoDB.Driver.Core/MongoDB.Driver.Core.csproj b/src/MongoDB.Driver.Core/MongoDB.Driver.Core.csproj
index 710b2100fad..c45a6823ac0 100644
--- a/src/MongoDB.Driver.Core/MongoDB.Driver.Core.csproj
+++ b/src/MongoDB.Driver.Core/MongoDB.Driver.Core.csproj
@@ -21,7 +21,7 @@
-
+
diff --git a/src/MongoDB.Driver/Encryption/ClientEncryption.cs b/src/MongoDB.Driver/Encryption/ClientEncryption.cs
index ef436a282a7..dddf27588a8 100644
--- a/src/MongoDB.Driver/Encryption/ClientEncryption.cs
+++ b/src/MongoDB.Driver/Encryption/ClientEncryption.cs
@@ -240,7 +240,8 @@ public void Dispose()
/// The encrypt options.
/// The cancellation token.
/// The encrypted value.
- public BsonBinaryData Encrypt(BsonValue value, EncryptOptions encryptOptions, CancellationToken cancellationToken = default) => _libMongoCryptController.EncryptField(value, encryptOptions, cancellationToken);
+ public BsonBinaryData Encrypt(BsonValue value, EncryptOptions encryptOptions, CancellationToken cancellationToken = default) =>
+ EnsureEncryptedData(_libMongoCryptController.EncryptField(value, encryptOptions, isExpressionMode: false, cancellationToken));
///
/// Encrypts the specified value.
@@ -249,7 +250,48 @@ public void Dispose()
/// The encrypt options.
/// The cancellation token.
/// The encrypted value.
- public Task EncryptAsync(BsonValue value, EncryptOptions encryptOptions, CancellationToken cancellationToken = default) => _libMongoCryptController.EncryptFieldAsync(value, encryptOptions, cancellationToken);
+ public async Task EncryptAsync(BsonValue value, EncryptOptions encryptOptions, CancellationToken cancellationToken = default) =>
+ EnsureEncryptedData(await _libMongoCryptController.EncryptFieldAsync(value, encryptOptions, isExpressionMode: false, cancellationToken).ConfigureAwait(false));
+
+ ///
+ /// Encrypts a Match Expression or Aggregate Expression to query a range index.
+ ///
+ /// The expression that is expected to be a BSON document of one of the following forms:
+ /// 1. A Match Expression of this form:
+ /// {$and: [{"field": {$gt: "value1"}}, {"field": {$lt: "value2" }}]}
+ /// 2. An Aggregate Expression of this form:
+ /// {$and: [{$gt: ["fieldpath", "value1"]}, {$lt: ["fieldpath", "value2"]}]
+ /// $gt may also be $gte. $lt may also be $lte.
+ ///
+ /// The encryption options.
+ /// The cancellation token.
+ /// The encrypted expression.
+ ///
+ /// Only supported for queryType "rangePreview"
+ /// The Range algorithm is experimental only. It is not intended for public use. It is subject to breaking changes.
+ ///
+ public BsonDocument EncryptExpression(BsonDocument expression, EncryptOptions encryptOptions, CancellationToken cancellationToken = default) =>
+ EnsureEncryptedData(_libMongoCryptController.EncryptField(expression, encryptOptions, isExpressionMode: true, cancellationToken));
+
+ ///
+ /// Encrypts a Match Expression or Aggregate Expression to query a range index.
+ ///
+ /// The expression that is expected to be a BSON document of one of the following forms:
+ /// 1. A Match Expression of this form:
+ /// {$and: [{"field": {$gt: "value1"}}, {"field": {$lt: "value2" }}]}
+ /// 2. An Aggregate Expression of this form:
+ /// {$and: [{$gt: ["fieldpath", "value1"]}, {$lt: ["fieldpath", "value2"]}]
+ /// $gt may also be $gte. $lt may also be $lte.
+ ///
+ /// The encryption options.
+ /// The cancellation token.
+ /// the encrypted expression.
+ ///
+ /// Only supported for queryType "rangePreview"
+ /// The Range algorithm is experimental only. It is not intended for public use. It is subject to breaking changes.
+ ///
+ public async Task EncryptExpressionAsync(BsonDocument expression, EncryptOptions encryptOptions, CancellationToken cancellationToken = default) =>
+ EnsureEncryptedData(await _libMongoCryptController.EncryptFieldAsync(expression, encryptOptions, isExpressionMode: true, cancellationToken).ConfigureAwait(false));
///
/// Finds a single key document with the given UUID (BSON binary subtype 0x04).
@@ -342,5 +384,19 @@ public RewrapManyDataKeyResult RewrapManyDataKey(FilterDefinition
/// The result.
public Task RewrapManyDataKeyAsync(FilterDefinition filter, RewrapManyDataKeyOptions options, CancellationToken cancellationToken = default) =>
_libMongoCryptController.RewrapManyDataKeyAsync(filter, options, cancellationToken);
+
+ // private methods
+ private TEncryptedValue EnsureEncryptedData(BsonValue encryptedValue) where TEncryptedValue : BsonValue
+ {
+ if (encryptedValue is TEncryptedValue convertedValue)
+ {
+ return convertedValue;
+ }
+ else
+ {
+ // should not be reached
+ throw new InvalidOperationException($"The encrypted data must be {typeof(TEncryptedValue).Name}, but was {encryptedValue?.GetType()?.Name ?? "null"}.");
+ }
+ }
}
}
diff --git a/src/MongoDB.Driver/Encryption/EncryptOptions.cs b/src/MongoDB.Driver/Encryption/EncryptOptions.cs
index d151d16e071..b566acee96d 100644
--- a/src/MongoDB.Driver/Encryption/EncryptOptions.cs
+++ b/src/MongoDB.Driver/Encryption/EncryptOptions.cs
@@ -13,11 +13,78 @@
* limitations under the License.
*/
+using MongoDB.Bson;
using MongoDB.Driver.Core.Misc;
using System;
namespace MongoDB.Driver.Encryption
{
+ ///
+ /// Range options.
+ ///
+ ///
+ /// The Range algorithm is experimental only. It is not intended for public use.
+ /// RangeOpts specifies index options for a Queryable Encryption field supporting "rangePreview" queries.
+ /// min, max, sparsity, and range must match the values set in the encryptedFields of the destination collection.
+ /// For double and decimal128, min/max/precision must all be set, or all be unset.
+ /// RangeOptions only applies when algorithm is "rangePreview".
+ ///
+ public sealed class RangeOptions
+ {
+ private readonly BsonValue _max;
+ private readonly BsonValue _min;
+ private readonly int? _precision;
+ private readonly long _sparsity;
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The sparsity.
+ /// The min range.
+ /// The max range.
+ /// The precision range.
+ public RangeOptions(long sparsity, Optional min = default, Optional max = default, Optional precision = default)
+ {
+ _sparsity = sparsity;
+ _min = min.WithDefault(null);
+ _max = max.WithDefault(null);
+ _precision = precision.WithDefault(null);
+ }
+
+ // public properties
+ ///
+ /// Minimum value.
+ ///
+ /// Min is required if precision is set.
+ public BsonValue Min => _min;
+ ///
+ /// Maximum value.
+ ///
+ /// Max is required if precision is set.
+ public BsonValue Max => _max;
+ ///
+ /// Gets the precision.
+ ///
+ ///
+ /// Precision may only be set for double or decimal128.
+ ///
+ public int? Precision => _precision;
+ ///
+ /// Gets the sparsity.
+ ///
+ public long Sparsity => _sparsity;
+
+ // internal methods
+ internal BsonDocument CreateDocument() =>
+ new BsonDocument
+ {
+ { "min", _min, _min != null },
+ { "max", _max, _max != null },
+ { "precision", _precision, _precision != null },
+ { "sparsity", _sparsity }
+ };
+ }
+
///
/// Encryption options for explicit encryption.
///
@@ -38,6 +105,7 @@ private static string ConvertEnumAlgorithmToString(EncryptionAlgorithm encryptio
private readonly string _alternateKeyName;
private readonly long? _contentionFactor;
private readonly Guid? _keyId;
+ private readonly RangeOptions _rangeOptions;
private readonly string _queryType;
// constructors
@@ -49,12 +117,14 @@ private static string ConvertEnumAlgorithmToString(EncryptionAlgorithm encryptio
/// The key Id.
/// [Beta] The contention factor.
/// [Beta] The query type.
+ /// The range options.
public EncryptOptions(
string algorithm,
Optional alternateKeyName = default,
Optional keyId = default,
Optional contentionFactor = default,
- Optional queryType = default)
+ Optional queryType = default,
+ Optional rangeOptions = default)
{
Ensure.IsNotNull(algorithm, nameof(algorithm));
if (Enum.TryParse(algorithm, out var @enum))
@@ -69,6 +139,7 @@ public EncryptOptions(
_alternateKeyName = alternateKeyName.WithDefault(null);
_contentionFactor = contentionFactor.WithDefault(null);
_keyId = keyId.WithDefault(null);
+ _rangeOptions = rangeOptions.WithDefault(null);
_queryType = queryType.WithDefault(null);
EnsureThatOptionsAreValid();
}
@@ -81,18 +152,21 @@ public EncryptOptions(
/// The key Id.
/// [Beta] The contention factor.
/// [Beta] The query type.
+ /// The range options.
public EncryptOptions(
EncryptionAlgorithm algorithm,
Optional alternateKeyName = default,
Optional keyId = default,
Optional contentionFactor = default,
- Optional queryType = default)
+ Optional queryType = default,
+ Optional rangeOptions = default)
: this(
algorithm: ConvertEnumAlgorithmToString(algorithm),
alternateKeyName,
keyId,
contentionFactor,
- queryType)
+ queryType,
+ rangeOptions)
{
}
@@ -137,6 +211,19 @@ public EncryptOptions(
///
public string QueryType => _queryType;
+ ///
+ /// Gets the range options.
+ ///
+ ///
+ /// The range options.
+ ///
+ ///
+ /// The Range algorithm is experimental only. It is not intended for public use.
+ /// RangeOpts specifies index options for a Queryable Encryption field supporting "rangePreview" queries.
+ /// RangeOptions only applies when algorithm is "rangePreview".
+ ///
+ public RangeOptions RangeOptions => _rangeOptions;
+
///
/// Returns a new EncryptOptions instance with some settings changed.
///
@@ -145,20 +232,23 @@ public EncryptOptions(
/// The keyId.
/// [Beta] The contention factor.
/// [Beta] The query type.
+ /// The range options.
/// A new EncryptOptions instance.
public EncryptOptions With(
Optional algorithm = default,
Optional alternateKeyName = default,
Optional keyId = default,
Optional contentionFactor = default,
- Optional queryType = default)
+ Optional queryType = default,
+ Optional rangeOptions = default)
{
return new EncryptOptions(
algorithm: algorithm.WithDefault(_algorithm),
alternateKeyName: alternateKeyName.WithDefault(_alternateKeyName),
keyId: keyId.WithDefault(_keyId),
contentionFactor: contentionFactor.WithDefault(_contentionFactor),
- queryType: queryType.WithDefault(_queryType));
+ queryType: queryType.WithDefault(_queryType),
+ rangeOptions: rangeOptions.WithDefault(_rangeOptions));
}
// private methods
@@ -166,8 +256,9 @@ private void EnsureThatOptionsAreValid()
{
Ensure.That(!(!_keyId.HasValue && _alternateKeyName == null), "Key Id and AlternateKeyName may not both be null.");
Ensure.That(!(_keyId.HasValue && _alternateKeyName != null), "Key Id and AlternateKeyName may not both be set.");
- Ensure.That(!(_contentionFactor.HasValue && _algorithm != EncryptionAlgorithm.Indexed.ToString()), "ContentionFactor only applies for Indexed algorithm.");
- Ensure.That(!(_queryType != null && _algorithm != EncryptionAlgorithm.Indexed.ToString()), "QueryType only applies for Indexed algorithm.");
+ Ensure.That(!(_contentionFactor.HasValue && (_algorithm != EncryptionAlgorithm.Indexed.ToString() && _algorithm != EncryptionAlgorithm.RangePreview.ToString())), "ContentionFactor only applies for Indexed or RangePreview algorithm.");
+ Ensure.That(!(_queryType != null && (_algorithm != EncryptionAlgorithm.Indexed.ToString() && _algorithm != EncryptionAlgorithm.RangePreview.ToString())), "QueryType only applies for Indexed or RangePreview algorithm.");
+ Ensure.That(!(_rangeOptions != null && _algorithm != EncryptionAlgorithm.RangePreview.ToString()), "RangeOptions only applies for RangePreview algorithm.");
}
}
}
diff --git a/src/MongoDB.Driver/Encryption/EncryptionAlgorithm.cs b/src/MongoDB.Driver/Encryption/EncryptionAlgorithm.cs
index 84e91229706..c94bcab79db 100644
--- a/src/MongoDB.Driver/Encryption/EncryptionAlgorithm.cs
+++ b/src/MongoDB.Driver/Encryption/EncryptionAlgorithm.cs
@@ -39,6 +39,15 @@ public enum EncryptionAlgorithm
///
/// [Beta] Unindexed algorithm.
///
- Unindexed
+ Unindexed,
+ ///
+ /// RangePreview algorithm.
+ ///
+ ///
+ /// The Range algorithm is experimental only. It is not intended for public use.
+ /// To insert or query with an "Indexed" encrypted payload, use a MongoClient configured with AutoEncryptionOptions.
+ /// AutoEncryptionOptions.BypassQueryAnalysis may be true. AutoEncryptionOptions.BypassAutoEncryption must be false.
+ ///
+ RangePreview
}
}
diff --git a/src/MongoDB.Driver/Encryption/ExplicitEncryptionLibMongoCryptController.cs b/src/MongoDB.Driver/Encryption/ExplicitEncryptionLibMongoCryptController.cs
index 91d49c00030..bb0e3c8a3aa 100644
--- a/src/MongoDB.Driver/Encryption/ExplicitEncryptionLibMongoCryptController.cs
+++ b/src/MongoDB.Driver/Encryption/ExplicitEncryptionLibMongoCryptController.cs
@@ -210,9 +210,10 @@ public async Task DeleteKeyAsync(Guid id, CancellationToken cancel
}
}
- public BsonBinaryData EncryptField(
+ public BsonValue EncryptField(
BsonValue value,
EncryptOptions encryptOptions,
+ bool isExpressionMode,
CancellationToken cancellationToken)
{
Ensure.IsNotNull(value, nameof(value));
@@ -228,12 +229,14 @@ public BsonBinaryData EncryptField(
queryType: encryptOptions.QueryType,
contentionFactor: encryptOptions.ContentionFactor,
encryptOptions.Algorithm,
- wrappedValueBytes);
+ wrappedValueBytes,
+ ToBsonIfNotNull(encryptOptions?.RangeOptions?.CreateDocument()),
+ isExpressionMode);
using (context)
{
var wrappedBytes = ProcessStates(context, databaseName: null, cancellationToken);
- return UnwrapValue(wrappedBytes).AsBsonBinaryData;
+ return UnwrapValue(wrappedBytes);
}
}
catch (Exception ex)
@@ -242,9 +245,10 @@ public BsonBinaryData EncryptField(
}
}
- public async Task EncryptFieldAsync(
+ public async Task EncryptFieldAsync(
BsonValue value,
EncryptOptions encryptOptions,
+ bool isExpressionMode,
CancellationToken cancellationToken)
{
Ensure.IsNotNull(value, nameof(value));
@@ -260,12 +264,14 @@ public async Task EncryptFieldAsync(
queryType: encryptOptions.QueryType,
contentionFactor: encryptOptions.ContentionFactor,
encryptOptions.Algorithm,
- wrappedValueBytes);
+ wrappedValueBytes,
+ ToBsonIfNotNull(encryptOptions?.RangeOptions?.CreateDocument()),
+ isExpressionMode);
using (context)
{
var wrappedBytes = await ProcessStatesAsync(context, databaseName: null, cancellationToken).ConfigureAwait(false);
- return UnwrapValue(wrappedBytes).AsBsonBinaryData;
+ return UnwrapValue(wrappedBytes);
}
}
catch (Exception ex)
diff --git a/src/MongoDB.Driver/MongoDB.Driver.csproj b/src/MongoDB.Driver/MongoDB.Driver.csproj
index 110d7a6bc0a..913e1baf8ff 100644
--- a/src/MongoDB.Driver/MongoDB.Driver.csproj
+++ b/src/MongoDB.Driver/MongoDB.Driver.csproj
@@ -12,7 +12,7 @@
-
+
diff --git a/tests/MongoDB.Bson.TestHelpers/BsonValueEquivalencyComparer.cs b/tests/MongoDB.Bson.TestHelpers/BsonValueEquivalencyComparer.cs
index b15a42168d9..7ce19fe6f5d 100644
--- a/tests/MongoDB.Bson.TestHelpers/BsonValueEquivalencyComparer.cs
+++ b/tests/MongoDB.Bson.TestHelpers/BsonValueEquivalencyComparer.cs
@@ -23,7 +23,7 @@ public class BsonValueEquivalencyComparer : IEqualityComparer
#region static
public static BsonValueEquivalencyComparer Instance { get; } = new BsonValueEquivalencyComparer();
- public static bool Compare(BsonValue a, BsonValue b, Action massageAction = null)
+ public static bool Compare(BsonValue a, BsonValue b, Action massageAction = null, bool allowTypesMismatching = true)
{
massageAction?.Invoke(a, b);
@@ -39,11 +39,11 @@ public static bool Compare(BsonValue a, BsonValue b, Action().ToList(), expectedValue.AsBsonArray.Cast().ToList());
}
- var namesToUseOrderInsensitiveComparisonWith = new[] { "writeConcern", "maxTimeMS", "updates", "indexes", "getMore", "deletes", "compactionTokens" };
+ var namesToUseOrderInsensitiveComparisonWith = new[] { "writeConcern", "maxTimeMS", "updates", "indexes", "getMore", "deletes", "compactionTokens", "encryptionInformation" };
var useOrderInsensitiveComparison = namesToUseOrderInsensitiveComparisonWith.Contains(name);
- if (!(useOrderInsensitiveComparison ? BsonValueEquivalencyComparer.Compare(actualValue, expectedValue) : actualValue.Equals(expectedValue)))
+ if (!(useOrderInsensitiveComparison ? BsonValueEquivalencyComparer.Compare(actualValue, expectedValue, allowTypesMismatching: name != "encryptionInformation") : actualValue.Equals(expectedValue)))
{
switch (name)
{
diff --git a/tests/MongoDB.Driver.Core.Tests/Core/Clusters/ClusterTests.cs b/tests/MongoDB.Driver.Core.Tests/Core/Clusters/ClusterTests.cs
index 58dc3b23afd..2ffd86474a4 100644
--- a/tests/MongoDB.Driver.Core.Tests/Core/Clusters/ClusterTests.cs
+++ b/tests/MongoDB.Driver.Core.Tests/Core/Clusters/ClusterTests.cs
@@ -63,7 +63,7 @@ public void SupportedWireVersionRange_should_return_expected_result()
{
var result = Cluster.SupportedWireVersionRange;
- result.Should().Be(new Range(6, 18));
+ result.Should().Be(new Range(6, 19));
}
[Fact]
@@ -328,8 +328,8 @@ public void SelectServer_should_throw_if_the_matched_server_cannot_be_found_and_
[Theory]
[InlineData(0, 0, false)]
[InlineData(0, 0, true)]
- [InlineData(19, 20, false)]
- [InlineData(19, 20, true)]
+ [InlineData(20, 21, false)]
+ [InlineData(20, 21, true)]
public void SelectServer_should_throw_if_any_servers_are_incompatible(int min, int max, bool async)
{
var subject = CreateSubject();
diff --git a/tests/MongoDB.Driver.Core.Tests/Core/Misc/WireVersionTests.cs b/tests/MongoDB.Driver.Core.Tests/Core/Misc/WireVersionTests.cs
index 62ba6aeec8b..d381b78ce6b 100644
--- a/tests/MongoDB.Driver.Core.Tests/Core/Misc/WireVersionTests.cs
+++ b/tests/MongoDB.Driver.Core.Tests/Core/Misc/WireVersionTests.cs
@@ -46,7 +46,7 @@ public void GetServerVersionForErrorMessage_should_return_expected_serverVersion
[Fact]
public void SupportedWireRange_should_be_correct()
{
- WireVersion.SupportedWireVersionRange.Should().Be(new Range(6, 18));
+ WireVersion.SupportedWireVersionRange.Should().Be(new Range(6, 19));
}
[Fact]
@@ -59,7 +59,8 @@ public void ToServerVersion_should_throw_if_wireVersion_less_than_0()
[Theory]
[InlineData(99, null, null)]
- [InlineData(19, null, null)]
+ [InlineData(20, null, null)]
+ [InlineData(19, 6, 2)]
[InlineData(18, 6, 1)]
[InlineData(17, 6, 0)]
[InlineData(16, 5, 3)]
diff --git a/tests/MongoDB.Driver.Core.Tests/Core/Servers/ServerDescriptionTests.cs b/tests/MongoDB.Driver.Core.Tests/Core/Servers/ServerDescriptionTests.cs
index 7ae009fb6d2..8e925df61be 100644
--- a/tests/MongoDB.Driver.Core.Tests/Core/Servers/ServerDescriptionTests.cs
+++ b/tests/MongoDB.Driver.Core.Tests/Core/Servers/ServerDescriptionTests.cs
@@ -279,7 +279,8 @@ public void Equals_should_return_true_when_all_fields_are_equal()
[InlineData(new[] { 15, 16 }, true)]
[InlineData(new[] { 16, 17 }, true)]
[InlineData(new[] { 18, 19 }, true)]
- [InlineData(new[] { 19, 20 }, false)]
+ [InlineData(new[] { 19, 20 }, true)]
+ [InlineData(new[] { 20, 21 }, false)]
public void IsCompatibleWithDriver_should_return_expected_result(int[] minMaxWireVersions, bool expectedResult)
{
var clusterId = new ClusterId(1);
diff --git a/tests/MongoDB.Driver.Tests/Encryption/EncryptOptionsTests.cs b/tests/MongoDB.Driver.Tests/Encryption/EncryptOptionsTests.cs
index 95bcf662d4b..c814350cf88 100644
--- a/tests/MongoDB.Driver.Tests/Encryption/EncryptOptionsTests.cs
+++ b/tests/MongoDB.Driver.Tests/Encryption/EncryptOptionsTests.cs
@@ -34,7 +34,7 @@ public void Constructor_should_fail_when_contentionFactor_and_algorithm_is_not_i
{
var exception = Record.Exception(() => new EncryptOptions(algorithm: "test", contentionFactor: 1, keyId: Guid.NewGuid()));
var e = exception.Should().BeOfType().Subject;
- e.Message.Should().Be("ContentionFactor only applies for Indexed algorithm.");
+ e.Message.Should().Be("ContentionFactor only applies for Indexed or RangePreview algorithm.");
}
[Fact]
@@ -58,7 +58,15 @@ public void Constructor_should_fail_when_queryType_and_algorithm_is_not_indexed(
{
var exception = Record.Exception(() => new EncryptOptions(algorithm: "test", queryType: "equality", keyId: Guid.NewGuid()));
var e = exception.Should().BeOfType().Subject;
- e.Message.Should().Be("QueryType only applies for Indexed algorithm.");
+ e.Message.Should().Be("QueryType only applies for Indexed or RangePreview algorithm.");
+ }
+
+ [Fact]
+ public void Constructor_should_fail_when_rangeOptions_and_algorithm_is_not_rangePreview()
+ {
+ var exception = Record.Exception(() => new EncryptOptions(algorithm: "test", keyId: Guid.NewGuid(), rangeOptions: new RangeOptions(0)));
+ var e = exception.Should().BeOfType().Subject;
+ e.Message.Should().Be("RangeOptions only applies for RangePreview algorithm.");
}
[Theory]
@@ -75,10 +83,14 @@ public void Constructor_should_fail_when_queryType_and_algorithm_is_not_indexed(
[InlineData("TEST_random", "TEST_random")]
// just a random value in enum form
[InlineData((EncryptionAlgorithm)99, "99")]
+ // indexed algorithm
[InlineData(EncryptionAlgorithm.Indexed, "Indexed")]
[InlineData("Indexed", "Indexed")]
[InlineData(EncryptionAlgorithm.Unindexed, "Unindexed")]
[InlineData("Unindexed", "Unindexed")]
+ // range preview algorithm
+ [InlineData(EncryptionAlgorithm.RangePreview, "RangePreview")]
+ [InlineData("RangePreview", "RangePreview")]
public void Constructor_should_support_different_algorithm_representations(object algorithm, string expectedAlgorithmRepresentation)
{
var alternateKeyName = "test";
@@ -132,11 +144,18 @@ public void With_should_set_correct_values()
var fle2State = 2;
subject = CreateConfiguredSubject(state: fle2State);
subject = subject.With(contentionFactor: newContention);
- AssertValues(subject, EncryptionAlgorithm.Indexed.ToString(), expectedKeyId: originalKeyId, expectedContentionFactor: newContention);
+ AssertValues(subject, expectedAlgorithm: originalAlgorithm, expectedKeyId: originalKeyId, expectedContentionFactor: newContention);
+ newAlgorithm = EncryptionAlgorithm.Indexed.ToString();
subject = CreateConfiguredSubject(state: fle2State);
subject = subject.With(queryType: newQueryType);
- AssertValues(subject, EncryptionAlgorithm.Indexed.ToString(), expectedKeyId: originalKeyId, expectedQueryType: newQueryType);
+ AssertValues(subject, expectedAlgorithm: newAlgorithm, expectedKeyId: originalKeyId, expectedQueryType: newQueryType);
+
+ newQueryType = "rangePreview";
+ newAlgorithm = EncryptionAlgorithm.RangePreview.ToString();
+ subject = CreateConfiguredSubject(state: fle2State);
+ subject = subject.With(algorithm: EncryptionAlgorithm.RangePreview.ToString(), queryType: newQueryType);
+ AssertValues(subject, expectedAlgorithm: newAlgorithm, expectedKeyId: originalKeyId, expectedQueryType: newQueryType);
static void AssertValues(EncryptOptions subject, string expectedAlgorithm, Guid? expectedKeyId = null, string expectedAlternateKeyName = null, string expectedQueryType = null, long? expectedContentionFactor = null)
{
diff --git a/tests/MongoDB.Driver.Tests/Packaging/PackagingTests.cs b/tests/MongoDB.Driver.Tests/Packaging/PackagingTests.cs
index c2c801c1c5c..31fddadd3f8 100644
--- a/tests/MongoDB.Driver.Tests/Packaging/PackagingTests.cs
+++ b/tests/MongoDB.Driver.Tests/Packaging/PackagingTests.cs
@@ -38,7 +38,7 @@ public static void Libmongocrypt_library_should_provide_library_version()
{
var version = Library.Version;
- version.Should().Be("1.6.0");
+ version.Should().Be("1.7.0");
}
#pragma warning disable IDE0051 // Remove unused private members
diff --git a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/ClientSideEncryptionTestRunner.cs b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/ClientSideEncryptionTestRunner.cs
index d1e71a04f3a..317c0099367 100644
--- a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/ClientSideEncryptionTestRunner.cs
+++ b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/ClientSideEncryptionTestRunner.cs
@@ -15,7 +15,6 @@
using System;
using System.Collections.Generic;
-using System.Collections.ObjectModel;
using System.Linq;
using MongoDB.Bson;
using MongoDB.Bson.TestHelpers.JsonDrivenTests;
diff --git a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/prose-tests/ClientEncryptionProseTests.cs b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/prose-tests/ClientEncryptionProseTests.cs
index 20220ce6f87..499f7e801f7 100644
--- a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/prose-tests/ClientEncryptionProseTests.cs
+++ b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/prose-tests/ClientEncryptionProseTests.cs
@@ -1960,6 +1960,265 @@ HttpClientWrapperWithModifiedRequest CreateHttpClientWrapperWithModifiedRequest(
}
}
+ [Theory]
+ [ParameterAttributeData]
+ public async Task RangeExplicitEncryptionTest(
+ [Range(1, 8)] int testCase,
+ // test case rangeType values correspond to keys used in test configuration files
+ [Values("DecimalNoPrecision", "DecimalPrecision", "DoubleNoPrecision", "DoublePrecision", "Date", "Int", "Long")] string rangeType,
+ [Values(false, false)] bool async)
+ {
+ RequireServer.Check().Supports(Feature.CsfleRangeAlgorithm).ClusterTypes(ClusterType.ReplicaSet, ClusterType.Sharded, ClusterType.LoadBalanced);
+ if (rangeType == "DecimalNoPrecision")
+ {
+ // Tests for ``DecimalNoPrecision`` must only run against a replica set.
+ // ``DecimalNoPrecision`` queries are expected to take a long time and may exceed the default mongos timeout.
+ RequireServer.Check().ClusterTypes(ClusterType.ReplicaSet);
+ }
+
+ var encryptedFields = JsonFileReader.Instance.Documents[$"etc.data.range-encryptedFields-{rangeType}.json"];
+ var key1Document = JsonFileReader.Instance.Documents["etc.data.keys.key1-document.json"];
+ var key1Id = key1Document["_id"].AsGuid;
+ var kmsProvider = "local";
+ var encryptedKeyWithRangeSupportedType = $"encrypted{rangeType}";
+ var value0 = GetValue(0, rangeType);
+ var value6 = GetValue(6, rangeType);
+ var value30 = GetValue(30, rangeType);
+ var value200 = GetValue(200, rangeType);
+ var value201 = GetValue(201, rangeType);
+
+ var explicitEncryption = CollectionNamespace.FromFullName("db.explicit_encryption");
+ var encryptOptions = WithRangeOptions(rangeType, new EncryptOptions(EncryptionAlgorithm.RangePreview, contentionFactor: 0, keyId: key1Id));
+
+ using (var keyVaultClient = ConfigureClient(clearCollections: true, mainCollectionNamespace: explicitEncryption, encryptedFields: encryptedFields))
+ {
+ var keyVaultCollection = GetCollection(keyVaultClient, __keyVaultCollectionNamespace);
+ Insert(keyVaultCollection, async, key1Document);
+
+ using (var clientEncryption = ConfigureClientEncryption(keyVaultClient, kmsProviderFilter: kmsProvider))
+ using (var encryptedClient = ConfigureClientEncrypted(kmsProviderFilter: kmsProvider, bypassQueryAnalysis: true))
+ {
+ var encrypted0 = ExplicitEncrypt(clientEncryption, encryptOptions, value0, async);
+ var encrypted6 = ExplicitEncrypt(clientEncryption, encryptOptions, value6, async);
+ var encrypted30 = ExplicitEncrypt(clientEncryption, encryptOptions, value30, async);
+ var encrypted200 = ExplicitEncrypt(clientEncryption, encryptOptions, value200, async);
+
+ CreateCollection(encryptedClient, explicitEncryption, encryptedFields: encryptedFields);
+ var encryptedCollection = GetCollection(encryptedClient, explicitEncryption);
+ // bulk insert is not supported
+ Insert(
+ encryptedCollection,
+ async,
+ new BsonDocument { { encryptedKeyWithRangeSupportedType, encrypted0 }, { "_id", 0 } });
+ Insert(
+ encryptedCollection,
+ async,
+ new BsonDocument { { encryptedKeyWithRangeSupportedType, encrypted6 }, { "_id", 1 } });
+ Insert(
+ encryptedCollection,
+ async,
+ new BsonDocument { { encryptedKeyWithRangeSupportedType, encrypted30 }, { "_id", 2 } });
+ Insert(
+ encryptedCollection,
+ async,
+ new BsonDocument { { encryptedKeyWithRangeSupportedType, encrypted200 }, { "_id", 3 } });
+
+ await RunTestCase(clientEncryption, encryptedCollection, testCase);
+ }
+ }
+
+ EncryptOptions WithRangeOptions(string rangeType, EncryptOptions encryptionOptions)
+ {
+ var rangeOptions = rangeType switch
+ {
+ "DecimalNoPrecision" => new RangeOptions(sparsity: 1),
+ "DecimalPrecision" => new RangeOptions(
+ sparsity: 1,
+ precision: 2,
+ min: new BsonDecimal128(0),
+ max: new BsonDecimal128(200)),
+ "DoubleNoPrecision" => new RangeOptions(sparsity: 1),
+ "DoublePrecision" => new RangeOptions(
+ sparsity: 1,
+ min: new BsonDouble(0),
+ max: new BsonDouble(200),
+ precision: 2),
+ "Date" => new RangeOptions(
+ sparsity: 1,
+ min: new BsonDateTime(0),
+ max: new BsonDateTime(200)),
+ "Int" => new RangeOptions(
+ sparsity: 1,
+ min: new BsonInt32(0),
+ max: new BsonInt32(200)),
+ "Long" => new RangeOptions(
+ sparsity: 1,
+ min: new BsonInt64(0),
+ max: new BsonInt64(200)),
+ _ => throw new Exception($"Unsupported rangeSupportedType {rangeType}.")
+ };
+
+ return encryptionOptions.With(rangeOptions: rangeOptions);
+ }
+
+
+ async Task RunTestCase(ClientEncryption clientEncryption, IMongoCollection encryptedCollection, int testCase)
+ {
+ switch (testCase)
+ {
+ case 1: // can decrypt a payload
+ {
+ var insertPayload6 = ExplicitEncrypt(clientEncryption, encryptOptions, value6, async);
+ var decryptedValue = ExplicitDecrypt(clientEncryption, insertPayload6, async);
+ decryptedValue.Should().Be(value6); // asserts types too
+ }
+ break;
+ case 2: // can find encrypted range and return the maximum
+ {
+ var findPayload = await ExplicitEncryptExpression(
+ clientEncryption,
+ encryptOptions.With(queryType: "rangePreview"),
+ expression: BsonDocument.Parse(@$"
+ {{
+ ""$and"" :
+ [
+ {{ {encryptedKeyWithRangeSupportedType} : {{ ""$gte"" : {value6.ToJson()} }} }},
+ {{ {encryptedKeyWithRangeSupportedType} : {{ ""$lte"" : {value200.ToJson()} }} }}
+ ]
+ }}"),
+ async);
+
+ var findResult = Find(encryptedCollection, findPayload, async).ToList().OrderBy((d) => d["_id"]).ToList();
+ findResult.Should().HaveCount(3);
+
+ findResult[0][encryptedKeyWithRangeSupportedType].Should().Be(value6);
+ findResult[1][encryptedKeyWithRangeSupportedType].Should().Be(value30);
+ findResult[2][encryptedKeyWithRangeSupportedType].Should().Be(value200);
+ }
+ break;
+ case 3: // can find encrypted range and return the minimum
+ {
+ var findPayload = await ExplicitEncryptExpression(
+ clientEncryption,
+ encryptOptions.With(queryType: "rangePreview"),
+ expression: BsonDocument.Parse(@$"
+ {{
+ ""$and"" :
+ [
+ {{ {encryptedKeyWithRangeSupportedType} : {{ ""$gte"" : {value0.ToJson()} }} }},
+ {{ {encryptedKeyWithRangeSupportedType} : {{ ""$lte"" : {value6.ToJson()} }} }}
+ ]
+ }}"),
+ async);
+
+ var findResult = Find(encryptedCollection, findPayload, async).ToList().OrderBy((d) => d["_id"]).ToList();
+ findResult.Should().HaveCount(2);
+
+ findResult[0][encryptedKeyWithRangeSupportedType].Should().Be(value0);
+ findResult[1][encryptedKeyWithRangeSupportedType].Should().Be(value6);
+ }
+ break;
+ case 4: // can find encrypted range with an open range query
+ {
+ var findPayload = await ExplicitEncryptExpression(
+ clientEncryption,
+ encryptOptions.With(queryType: "rangePreview"),
+ expression: BsonDocument.Parse(@$"
+ {{
+ ""$and"" :
+ [
+ {{ {encryptedKeyWithRangeSupportedType} : {{ ""$gt"" : {value30.ToJson()} }} }}
+ ]
+ }}"),
+ async);
+
+ var findResult = Find(encryptedCollection, findPayload, async).ToList().OrderBy((d) => d["_id"]).ToList();
+ findResult.Should().HaveCount(1);
+
+ findResult[0][encryptedKeyWithRangeSupportedType].Should().Be(value200);
+ }
+ break;
+ case 5: // can run an aggregation expression inside $expr
+ {
+ var findPayload = await ExplicitEncryptExpression(
+ clientEncryption,
+ encryptOptions.With(queryType: "rangePreview"),
+ expression: BsonDocument.Parse(@$"
+ {{
+ ""$and"" :
+ [
+ {{ ""$lt"" : [ ""${encryptedKeyWithRangeSupportedType}"", {value30.ToJson()} ] }}
+ ]
+ }}"),
+ async);
+
+ var findResult = Find(encryptedCollection, BsonDocument.Parse(@$"{{ ""$expr"" : {findPayload} }}"), async).ToList().OrderBy((d) => d["_id"]).ToList();
+ findResult.Should().HaveCount(2);
+
+ findResult[0][encryptedKeyWithRangeSupportedType].Should().Be(value0);
+ findResult[1][encryptedKeyWithRangeSupportedType].Should().Be(value6);
+ }
+ break;
+ case 6: // encrypting a document greater than the maximum errors
+ {
+ if (rangeType == "DoubleNoPrecision" || rangeType == "DecimalNoPrecision")
+ {
+ throw new SkipException("Skip it based on spec requirement.");
+ }
+
+ var exception = Record.Exception(() => ExplicitEncrypt(clientEncryption, encryptOptions, value201, async));
+ AssertInnerEncryptionException(exception, "Value must be greater than or equal to the minimum value and less than or equal to the maximum value");
+ }
+ break;
+ case 7: // encrypting a document of a different type errors
+ {
+ if (rangeType == "DoubleNoPrecision" || rangeType == "DecimalNoPrecision")
+ {
+ throw new SkipException("Skip it based on spec requirement.");
+ }
+
+ var exception = Record.Exception(() =>
+ Insert(
+ encryptedCollection,
+ async,
+ // If the encrypted field is ``encryptedInt`` insert ``{ "encryptedInt": { "$numberDouble": "6" } }``.
+ // Otherwise, insert ``{ "encrypted": { "$numberInt": "6" }``.
+ new BsonDocument(encryptedKeyWithRangeSupportedType, rangeType == "Int" ? GetValue(6, "DoubleNoPrecision") : GetValue(6, "Int"))));
+ exception.Should().BeOfType>().Which.Message.Should().Contain("Document failed validation");
+ }
+ break;
+ case 8: // setting precision errors if the type is not a double
+ {
+ if (rangeType == "DoubleNoPrecision" || rangeType == "DoublePrecision" || rangeType == "DecimalPrecision" || rangeType == "DecimalNoPrecision")
+ {
+ throw new SkipException("Skip it based on spec requirement.");
+ }
+
+ var exception = Record.Exception(() =>
+ ExplicitEncrypt(
+ clientEncryption,
+ encryptOptions.With(rangeOptions: new RangeOptions(sparsity: 1, min: BsonValue.Create(0), max: BsonValue.Create(200), precision: 2)),
+ value6,
+ async));
+ AssertInnerEncryptionException(exception, "expected 'precision' to be set with double or decimal128 index, but got: INT32 min");
+ }
+ break;
+ }
+ }
+
+ BsonValue GetValue(int value, string rangeSupportedType) => rangeSupportedType switch
+ {
+ "DecimalNoPrecision" => new BsonDecimal128(value),
+ "DecimalPrecision" => new BsonDecimal128(value),
+ "DoubleNoPrecision" => new BsonDouble(value),
+ "DoublePrecision" => new BsonDouble(value),
+ "Date" => new BsonDateTime(millisecondsSinceEpoch: value),
+ "Int" => new BsonInt32(value),
+ "Long" => new BsonInt64(value),
+ _ => throw new ArgumentException($"Unsupported {nameof(rangeSupportedType)} {rangeSupportedType}.")
+ };
+ }
+
[Theory]
[ParameterAttributeData]
public void RewrapTest(
@@ -2579,6 +2838,15 @@ private BsonBinaryData ExplicitEncrypt(
return encryptedValue;
}
+ private async Task ExplicitEncryptExpression(
+ ClientEncryption clientEncryption,
+ EncryptOptions encryptOptions,
+ BsonDocument expression,
+ bool async) =>
+ async
+ ? await clientEncryption.EncryptExpressionAsync(expression, encryptOptions)
+ : clientEncryption.EncryptExpression(expression, encryptOptions);
+
private IAsyncCursor Find(
IMongoCollection collection,
BsonDocument filter,