Skip to content

Commit 65a8075

Browse files
committed
Query Emebedded Document
1 parent 9a68cee commit 65a8075

File tree

5 files changed

+79
-3
lines changed

5 files changed

+79
-3
lines changed

mongodb-java/src/main/java/com/hungcdev/mongodb/connection/MongoDBConnection.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,6 @@ public static void main(String[] args) {
4343
private static void connectionExample() {
4444
MongoClient mongoClient = MongoDBConnection.connectMongoDBWithPOJOs("localhost", 27017);
4545
MongoDatabase mongoDatabase = mongoClient.getDatabase("HungcDev");
46-
mongoDatabase.createCollection("User");
46+
mongoDatabase.createCollection("Post");
4747
}
4848
}

mongodb-java/src/main/java/com/hungcdev/mongodb/data/Post.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public class Post {
1616
private String user;
1717
private String content;
1818
private List<String> tags;
19+
private PostQuality postQuality;
1920
private int view;
2021
private boolean enable;
21-
2222
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package com.hungcdev.mongodb.data;
2+
3+
import lombok.*;
4+
5+
@Getter
6+
@Setter
7+
@NoArgsConstructor
8+
@AllArgsConstructor
9+
@ToString
10+
public class PostQuality {
11+
private int likeNumber;
12+
private int shareNumber;
13+
}

mongodb-java/src/main/java/com/hungcdev/mongodb/query/QueryDocumentExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public static void main(String[] args) {
5050
/* Tim kiem document Post trong Collection thoa man tat ca cac dieu kien */
5151
findANDLogicExample(IP, port, databaseName, collection);
5252

53-
/* Tim kiem document Post trong Collection bat ky mot trong cac dieu kien */
53+
/* Tim kiem document Post trong Collection thoa man bat ky mot trong cac dieu kien */
5454
findORLogicExample(IP, port, databaseName, collection);
5555
}
5656

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package com.hungcdev.mongodb.query;
2+
3+
import com.hungcdev.mongodb.data.Post;
4+
import com.hungcdev.mongodb.data.PostQuality;
5+
import com.hungcdev.mongodb.insertion.InsertDocument;
6+
import com.mongodb.client.model.Filters;
7+
import org.bson.conversions.Bson;
8+
9+
import java.util.List;
10+
import java.util.UUID;
11+
12+
public class QueryEmbeddedDocumentExample {
13+
14+
public static void main(String[] args) {
15+
// Thong tin cau hinh de ket noi MongoDB
16+
String IP = "localhost";
17+
int port = 27017;
18+
String databaseName = "HungcDev";
19+
String collection = "Post";
20+
21+
/* Khoi tao du lieu */
22+
// initDataExample(IP, port, databaseName, collection);
23+
24+
findEmbeddedDocumentExample1(IP, port, databaseName,collection);
25+
26+
findEmbeddedDocumentExample2(IP, port, databaseName,collection);
27+
}
28+
29+
private static void findEmbeddedDocumentExample2(String ip, int port, String databaseName, String collection) {
30+
QueryDocument queryDocument = new QueryDocument(ip, port,databaseName);
31+
32+
/* tim kiem document voi user la AtomPtit va so luong share bang 50 */
33+
Bson query = Filters.and(Filters.eq("user", "AtomPtit"), Filters.eq("postQuality.shareNumber", 50));
34+
35+
List<Post> postList = queryDocument.find(collection, Post.class, query);
36+
System.out.println("--- Document trong Collection Post voi "+ query.toString() + "---");
37+
postList.forEach(post -> System.out.println(post.toString()));
38+
System.out.println("--- End ---");
39+
}
40+
41+
private static void findEmbeddedDocumentExample1(String ip, int port, String databaseName, String collection) {
42+
QueryDocument queryDocument = new QueryDocument(ip, port,databaseName);
43+
44+
/* tim kiem document voi so luong like lon hon 100 */
45+
Bson query = Filters.gt("postQuality.likeNumber", 100);
46+
47+
List<Post> postList = queryDocument.find(collection, Post.class, query);
48+
System.out.println("--- Document trong Collection Post voi "+ query.toString() + "---");
49+
postList.forEach(post -> System.out.println(post.toString()));
50+
System.out.println("--- End ---");
51+
}
52+
53+
private static void initDataExample(String ip, int port , String databaseName, String collection) {
54+
InsertDocument insertDocument = new InsertDocument(ip, port, databaseName);
55+
insertDocument.insertMany(collection, Post.class,
56+
Post.builder().id(UUID.randomUUID().toString()).title("Mongodb").user("Hungcdev").postQuality(new PostQuality(120, 50)).view(100).enable(true).build(),
57+
Post.builder().id(UUID.randomUUID().toString()).title("Spring").user("Hungcdev").postQuality(new PostQuality(120, 100)).view(200).enable(false).build(),
58+
Post.builder().id(UUID.randomUUID().toString()).title("Java").user("AtomPtit").postQuality(new PostQuality(50, 10)).view(300).enable(true).build(),
59+
Post.builder().id(UUID.randomUUID().toString()).title("Spring Boot").user("AtomPtit").postQuality(new PostQuality(70, 50)).view(400).enable(true).build(),
60+
Post.builder().id(UUID.randomUUID().toString()).title("PHP").user("HungHoi").postQuality(new PostQuality(150, 120)).view(500).enable(true).build()
61+
);
62+
}
63+
}

0 commit comments

Comments
 (0)