簡體   English   中英

Java - MongoDB 通過多個查詢獲得第一個結果的最佳方法

[英]Java - MongoDB best way to get first result with multiple queries

我正在嘗試基於多個字段獲取第一個文檔。 我可以通過以下方式獲得第一個文檔:

BasicDBObject query = new BasicDBObject("user", userId);
paymentsCollection.find(query).first();

這將首先返回與 ID 匹配的用戶。 但我想要實現的是它基於多種事物返回第一個文檔,例如:

                BasicDBObject query = new BasicDBObject("lastUpdated", new BasicDBObject("$gt", date30DaysAgo));
                BasicDBObject query2 = new BasicDBObject("status", "EXPIRED");
                BasicDBObject query3 = new BasicDBObject("user", userId);

我將如何查詢它們 3 個不同的對象?

以下是文檔的示例:

"_id": {
    "$oid": "5fd7b2d90d9f9a1722956029"
},
"uuid": "92bb9960-3e3c-11eb-94e9-837449b33b23",
"dateCreated": {
    "$date": "2020-12-14T18:45:44.566Z"
},
"lastUpdated": {
    "$date": "2020-12-14T19:45:50.715Z"
},
"status": "EXPIRED",
"realValue": 1,

您可以通過使用append來做到這一點,它將字段添加到BasicDBObject

它在您的案例中的用法可能如下所示:

BasicDBObject query = new BasicDBObject("user", userId)
    .append("status", "EXPIRED")
    .append("lastUpdated", new BasicDBObject("$gt", date30DaysAgo));
paymentsCollection.find(query).first();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM