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

Bagaimana menggabungkan bukan operator menggunakan pembuat Kriteria data pegas

Saya mencoba mongo Anda shell dan kode Java MongoDB Spring. Kode shell berfungsi dengan baik, tetapi kode Java yang sesuai menggunakan not() tidak berfungsi (saya tidak tahu mengapa).

Berikut adalah cara lain untuk bekerja dengan fungsi yang sama yang Anda cari:

Saya menggunakan dokumen masukan berikut:

{ _id: 1, createdOn: ISODate("2020-03-21T12:05:00") },
{ _id: 2, createdOn: ISODate("2020-03-28T18:33:00") },
{ _id: 3, createdOn: ISODate("2020-03-24T01:56:00") }

Dan, dengan asumsi tanggal hari ini :ISODate("2020-03-24T02:50:04.992Z") , hasilnya harus mengecualikan dokumen dengan _id: 3 , di mana createdOn ada dalam hari ini .

mongo permintaan shell:

db.collection.find( {
  $or: [
    { createdOn: { $gt: ISODate("2020-03-24T23:59:59.99") } },
    { createdOn: { $lt: ISODate("2020-03-24T00:00:00") } }
  ]
} )

Ini mengembalikan dokumen dengan _id 1 dan 2 (ini tidak termasuk tanggal hari ini).

Kode Java yang sesuai:

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd H:m:s");
Date fromDate = dateFormat.parse("2020-03-24 00:00:00");
Date toDate = dateFormat.parse("2020-03-24 23:59:59");

Criteria c = new Criteria().orOperator(
                           Criteria.where("createdOn").lt(fromDate),
                           Criteria.where("createdOn").gt(toDate) );        
Query q = Query.query(c);

MongoOperations mongoOps = new MongoTemplate(MongoClients.create(), "testDB");
List<Document> result = mongoOps.find(q, Document.class, "collection");
result.forEach(doc -> System.out.println(doc.toJson()));



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara mendapatkan array dari koleksi mongoDB?

  2. mongodb beberapa agregasi dalam satu operasi

  3. Redact di mongodb tampaknya tidak jelas bagi saya

  4. Kapan menggunakan GridFS di MongoDB?

  5. Status MongoDB gagal setelah mengedit mongo.conf (keluar kode, status =2)