From 9147ccdda99cc77a47c109dcdf84a9fcedb98548 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20G=C5=82=C3=B3wka?= Date: Tue, 24 Aug 2021 04:44:47 +0200 Subject: [PATCH] BAEL-4889: checking whether a field exists or not in MongoDB (#11129) * BAEL-4889: checking whether a field exists or not in MongoDB * BAEL-4889: fixed test class name * BAEL-4889: upgraded mongo version * BAEL-4889: changed test class name --- persistence-modules/java-mongodb/pom.xml | 2 +- .../FieldExistenceLiveTest.java | 50 +++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 persistence-modules/java-mongodb/src/test/java/com/baeldung/existence.field/FieldExistenceLiveTest.java diff --git a/persistence-modules/java-mongodb/pom.xml b/persistence-modules/java-mongodb/pom.xml index 15d904b12c..f708a54f46 100644 --- a/persistence-modules/java-mongodb/pom.xml +++ b/persistence-modules/java-mongodb/pom.xml @@ -33,7 +33,7 @@ - 3.10.1 + 3.12.1 1.11 1.5.3 diff --git a/persistence-modules/java-mongodb/src/test/java/com/baeldung/existence.field/FieldExistenceLiveTest.java b/persistence-modules/java-mongodb/src/test/java/com/baeldung/existence.field/FieldExistenceLiveTest.java new file mode 100644 index 0000000000..ca37ac6664 --- /dev/null +++ b/persistence-modules/java-mongodb/src/test/java/com/baeldung/existence.field/FieldExistenceLiveTest.java @@ -0,0 +1,50 @@ +package com.baeldung.existence.field; + +import com.mongodb.BasicDBObject; +import com.mongodb.MongoClient; +import com.mongodb.client.MongoCollection; +import com.mongodb.client.MongoDatabase; +import com.mongodb.client.model.Filters; +import org.bson.Document; +import org.junit.Before; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class FieldExistenceLiveTest { + private MongoClient mongoClient; + private MongoDatabase db; + private MongoCollection collection; + + @Before + public void setup() { + if (mongoClient == null) { + mongoClient = new MongoClient(); + db = mongoClient.getDatabase("existence"); + collection = db.getCollection("users"); + collection.insertOne(Document.parse("{'name':'Ben','surname': 'Big'}")); + } + } + + @Test + public void givenMongoCollection_whenUsingFilters_thenCheckingForExistingFieldWorks() { + Document nameDoc = collection.find(Filters.exists("name")).first(); + assertNotNull(nameDoc); + assertFalse(nameDoc.isEmpty()); + + nameDoc = collection.find(Filters.exists("non_existing")).first(); + assertNull(nameDoc); + } + + @Test + public void givenMongoCollection_whenUsingStandardDocumentQuery_thenCheckingForExistingFieldWorks() { + Document query = new Document("name", new BasicDBObject("$exists", true)); + Document doc = collection.find(query).first(); + assertNotNull(doc); + assertFalse(doc.isEmpty()); + + query = new Document("non_existing", new BasicDBObject("$exists", true)); + doc = collection.find(query).first(); + assertNull(doc); + } +}