MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Permintaan Java Mongodb untuk rentang tanggal

Perintah shell MongoDB (sebelum v3.4) untuk kasus penggunaan Anda adalah:

db.collection.aggregate([
    {
        "$redact": {
            "$cond": [
                { "$gt": [ "$pub-date", "$rel-date" ] },
                "$$KEEP",
                "$$PRUNE"
            ]
        }
    }
])

Menerjemahkan perintah ini ke dalam Java, Anda akan mendapatkan:

MongoClient mongoClient = ...;

MongoCollection<Document> collection = mongoClient.getDatabase("...").getCollection("...");

List<Document> documents = collection.aggregate(Arrays.asList(
        new Document("$redact", new Document("$cond",
                Arrays.asList(new Document("$gt", Arrays.asList("$pub-date", "$rel-date")), "$$KEEP", "$$PRUNE"))
        ))).into(new ArrayList<>());

for (Document document : documents) {
    System.out.println(document.toJson());
}

Diberikan koleksi dengan dokumen-dokumen ini ...

{
    "_id" : ObjectId("5acb40d27d63b61cb002bafe"),
    "title" : "WingsOfFire",
    "pub-date" : ISODate("2013-10-02T00:00:00.000Z"),
    "rel-date" : ISODate("2013-11-02T00:00:00.000Z")
}

{
    "_id" : ObjectId("5acb662756539a6734e64e4a"),
    "title" : "WingsOfSmoke",
    "pub-date" : ISODate("2013-11-02T00:00:00.000Z"),
    "rel-date" : ISODate("2013-10-02T00:00:00.000Z")
}

.. kode Java di atas akan tercetak ...

{ "_id" : { "$oid" : "5acb662756539a6734e64e4a" }, "title" : "WingsOfSmoke", "pub-date" : { "$date" : 1383350400000 }, "rel-date" : { "$date" : 1380672000000 } }

... karena pub-date dokumen ini (2013-11-02T00:00:00.000Z) setelah rel-date (2013-10-02T00:00:00.000Z).

Catatan:$where operator secara fungsional setara tetapi penggunaan operator itu disertai dengan beberapa batasan :



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Referensi skema luwak dan jenis 'ObjectID' yang tidak ditentukan

  2. Bagaimana cara mengubah string dengan karakter di int untuk seluruh koleksi?

  3. Penyewaan multi berbasis koleksi di mongo data musim semi

  4. Cara membuat skema luwak dengan array objek

  5. Pembentukan Ulang Dokumen MongoDB