암호화됨 필드 에서 범위 쿼리를 활성화한 경우 해당 필드 값이 지정한 범위 내에 있는 문서를 조회 할 수 있습니다.
다음 예시 에서는 암호화됨 필드 에 대해 범위 쿼리 를 수행하고 해독된 데이터를 출력합니다.
| const findResult = await encryptedCollection.findOne({ |
| "patientRecord.billAmount": { $gt: 1000, $lt: 2000 }, |
| }); |
| console.log(findResult); |
| var filter = Builders<Patient>.Filter.Gt("patientRecord.billAmount", 1000) & |
| Builders<Patient>.Filter.Lt("patientRecord.billAmount", 2000); |
|
| var findResult = encryptedCollection.Find(filter).FirstOrDefault(); |
| Console.WriteLine(findResult.ToJson()); |
| filter := bson.D{ |
| {"patientRecord.billAmount", bson.D{ |
| {"$gt", 1000}, |
| {"$lt", 2000}, |
| }}, |
| } |
| var findResult PatientDocument |
| err = coll.FindOne(context.TODO(), filter).Decode(&findResult) |
| if err != nil { |
| log.Fatal(err) |
| } |
|
| if err != nil { |
| fmt.Print("Unable to find the document\n") |
| } else { |
| output, _ := json.MarshalIndent(findResult, "", " ") |
| fmt.Printf("%s\n", output) |
| } |
| Document filter = new Document("patientRecord.billAmount", |
| new Document("$gt", 1000).append("$lt", 2000)); |
| Patient findResult = collection.find(filter).first(); |
|
| System.out.println(findResult); |
| const findResult = await encryptedCollection.findOne({ |
| "patientRecord.billAmount": { $gt: 1000, $lt: 2000 }, |
| }); |
| console.log(findResult); |
| $findResult = $encryptedCollection->findOne([ |
| 'patientRecord.billAmount' => ['$gt' => 1000, '$lt' => 2000], |
| ]); |
| print_r($findResult); |
| query = {"patientRecord.billAmount": {"$gt": 1000, "$lt": 2000}} |
| find_result = encrypted_collection.find_one(query) |
|
| print(find_result) |
| find_result = encrypted_collection.find( |
| "patientRecord.billAmount" => { "$gt" => 1000, "$lt" => 2000 } |
| ).first |
| puts find_result.inspect |
| let query = |
| doc! { "$and": [ |
| doc! { "patientRecord.billAmount": doc! { "$gt": 1000 } }, |
| doc! { "patientRecord.billAmount": doc! { "$lt": 2000 } } |
| ] |
| }; |
| let find_result = encrypted_coll.find_one(query).await?; |
|
| match find_result { |
| Some(document) => println!("{:?}", document), |
| None => println!("Document not found"), |
| } |
앞의 코드 예제의 출력은 다음과 유사해야 합니다.
| { |
| "_id": { |
| "$oid": "648b384a722cb9b8392df76a" |
| }, |
| "name": "Jon Doe", |
| "record": { |
| "ssn": "987-65-4320", |
| "billing": { |
| "type": "Visa", |
| "number": "4111111111111111" |
| }, |
| "billAmount": 1500 |
| }, |
| "__safeContent__": [ |
| { |
| "$binary": { |
| "base64": "L1NsYItk0Sg+oL66DBj6IYHbX7tveANQyrU2cvMzD9Y=", |
| "subType": "00" |
| } |
| } |
| ] |
| } |
__safeContent__ 필드를 수정하지 마세요.
__safeContent__ 필드는 Queryable Encryption에 반드시 필요합니다. 이 필드의 내용은 수정하지 마세요.