1
我有一個集合中的MongoDB這樣的格式:同場錯誤
"_id" : ObjectId("542d5256372943d9e000fc42"),
"_class" : "com.bedas.ays.mongo.dto.AboneAriza",
"AdSoyad" : "AKIN COBAN",
"aimid" : 100009,
"CepTelefon" : "5332234401",
"Telefon" : "0",
"fiderid" : 101383,
"kofrano" : NumberLong(444454),
"tcNo" : "26402622688",
"tmno" : {
"trafoNo" : 21649,
"trafoname" : "21450 BÜYÜKŞEHİR FİDERİ-->21646 BEYKOP 2.BÖLGE"
},
"ilce" : {
"ilceUavt" : 2051,
"ilcename" : "BEYLİKDÜZÜ"
},
"mahalle" : {
"mahalleUavt" : 40875,
"mahname" : "BARIŞ"
},
"sokak" : {
"_id" : 716802,
"name" : "EGEMENLİK CAD."
},
"bina" : {
"_id" : 15600414,
"name" : "ERCİYES APT. A-1"
},
"longitude" : "41.00345215",
"latitude" : "28.65782942",
"aboneno" : "00005181209",
"bolge" : 1,
"sube" : {
"_id" : 4,
"name" : "AVCILAR",
"Bolgeid" : 0
},
"kademeler" : [
{
"kademeId" : 1567,
"isemriId" : 3661,
"elektrikselAdresNo" : 21649,
"isemirleri" : {
"_id" : null,
"id" : 3661,
"isemriNo" : 3661,
"anahtarKelime" : "",
"aciklama" : "deneme erkan1",
"emreAmade" : false,
"degistirmeSebebi" : "",
"acil" : false,
"longitude" : "28.65831040",
"latitude" : "41.00287477",
"il" : {
"_id" : 1,
"name" : "ISTANBUL"
},
"basvuruTuru" : {
"_id" : 1,
"name" : "Bildirimli",
"id" : 1
},
"kesintiTipi" : {
"_id" : 1,
"name" : "AG şube",
"id" : 1
},
"havaKosulu" : {
"_id" : 1,
"name" : "Açık",
"id" : 1
},
"kesintiDurumu" : {
"_id" : 1,
"name" : "Tamir edildi",
"id" : 2
},
"gerilimTuru" : {
"_id" : 1,
"name" : "34,5 KV",
"id" : 1
},
"sebekeUnsuru" : {
"_id" : 1,
"name" : "TM",
"id" : 1
},
"isemriKaynagi" : {
"_id" : 1,
"name" : "İletim",
"id" : 1
},
"birimi" : {
"_id" : 1,
"name" : "Kesinti",
"subeid" : 0,
"id" : 1
},
"isemriSebebi" : {
"_id" : 1,
"name" : "Mücbir sebep",
"id" : 1
},
"isemriSureTipi" : {
"_id" : 1,
"name" : "Uzun",
"id" : 1
},
"arizaKapatmaTarihi" : null,
"baslamaZamani" : null,
"tahminiBitisZamani" : null,
"adres" : " ",
"basvuruSayisi" : 2,
"sonaErmeZamani" : null,
"kesintiSuresiSaat" : null,
"etkilenenKullaniciSayisi" : null,
"imarAlaniAg" : null,
"imarAlaniOg" : null,
"toplamEtkilenmeSureAg" : null,
"toplamEtkilenmeSureOg" : null,
"emreAmadeTarihi" : null,
"emreAmadeSureOg" : null,
"isemriBaslatan" : null,
"isemriDegistiren" : null,
"isemriKapatan" : null,
"kofraNo" : null,
"kaydeden" : null,
"ihbarTarihi" : null,
"direkNo" : null
}
}
]
}
我用spring-data
這個集合中查詢和我的查詢是這樣的一個:
Criteria criteria = Criteria
.where("kademeler.isemirleri.basvuruTuru.id").is(2)
.and("kademeler.isemirleri.isemriSureTipi.id").is(1)
.and("kademeler.isemirleri.kesintiDurumu.id").is(2);
Aggregation aggregation = newAggregation(
match(criteria),
unwind("kademeler"),
match(criteria),
group("kademeler.isemirleri.isemriKaynagi.name",
"kademeler.isemirleri.isemriSebebi.name").count()
.as("etkilenenAboneSayisi")
);
但isemriSebebi
和isemriKaynagi
的name
字段具有相同的字段,名稱爲name
。當我映射到對象aggregationResult
時,它會給出錯誤'Same field error'
我能做些什麼來避免這個錯誤?因爲我所有的嵌入式文檔都有相同的字段name
。
偉大的一個,尼爾。感謝那。我已經提交了[DATAMONGO-1082](https://jira.spring.io/browse/DATAMONGO-1082)以跟蹤文檔的改進。 – 2014-10-31 09:07:53
你是絕對正確的@Neil Lunn.That正是我需要的,謝謝。 – AknKplnoglu 2014-10-31 17:13:01