cari

Rumah  >  Soal Jawab  >  teks badan

mongodb - agregat spring-data-mongo menapis dua medan yang sama

Apabila menggunakan spring-data-mongo untuk statistik, anda perlu membandingkan sama ada dua medan adalah sama, seperti l==qzt
sama seperti pertanyaan dalam find

db.dbName.find({$where:"this.l=this.qzt"})

Kod ini boleh ditanya
Tetapi apabila menggunakan Spring-data-mongo Aggregation, ralat berikut dilaporkan

"errmsg" : "$where is not allowed inside of a $match aggregation expression" , "code" : 16395

Beginilah cara saya menggunakannya:

Criteria c = Criteria.where("$where").is("this.qzt==this.l");
Aggregation agg =Aggregation.newAggregation(
    Aggregation.match(c),
    Aggregation.group("qzc").count().as("z"),
    Aggregation.project("z").and("qzc").previousOperation(),
    Aggregation.sort(Sort.Direction.DESC, "z")
);
List<Events2> results = events2Data.agreagate(agg);

Adakah terdapat apa-apa yang salah? Atau adakah cara untuk membandingkan sama ada dua medan adalah sama~

ringa_leeringa_lee2789 hari yang lalu1099

membalas semua(0)saya akan balas

Tiada jawapan
  • Batalbalas