/ / Durchsuchen des bestimmten Feldwerts im inneren Unterdokument des Unterdokuments in Mongo db mit Java-java, mongodb

suche den entsprechenden Feldwert im inneren Unterdokument des Unterdokuments nach Mongo db mit Java - java, mongodb

Mongodb-Sammlung mit einer Reihe von Dokumenten mit der folgenden Struktur

{
"_id": ObjectId("52f4a5ed07b0f7106a9d5e4c"),
"FM_ID":"1253",
"passwd": ".aDoSkljf_h+6589q76w3rJK",
"Area": {
"0": {
"X": "53543500",
"Y": "14031500",
"images": {
"0": {
"ImgId": ObjectId("52f4a5a107b0f7106a9d1a84"),
"ImageType": NumberInt(15)
},
"1": {
"ImgId": ObjectId("52f4a5a107b0f7106a9d1a87"),
"ImageType": NumberInt(2)
}
}
},
"1": {
"X": "53543500",
"Y": "14094572",
"images": {
"0": {
"ImgId": ObjectId("52f4a5a107b0f7106a9d1aa8"),
"ImageType": NumberInt(15)
},
"1": {
"ImgId": ObjectId("52f4a5a107b0f7106a9d1aab"),
"ImageType": NumberInt(2)
},
"2": {
"ImgId": ObjectId("52f4a5a107b0f7106a9d1aae"),
"ImageType": NumberInt(0)
}
}
},
"2": {
"X": "53480464",
"Y": "14031500",
"images": {
"0": {
"ImgId": ObjectId("52f4a5a107b0f7106a9d1acc"),
"ImageType": NumberInt(15)
}
}
}

möchte nur die ImageType = 2-Auflistung filtern

andQueryObj.add(new BasicDBObject("Area", new BasicDBObject("$elemMatch", new BasicDBObject("images", new BasicDBObject("$elemMatch", new BasicDBObject("ImageType", "2"))))));

Diese Abfrage funktioniert nicht. Wie filtern Sie die Wertdaten des inneren Objektelements ..?

Antworten:

0 für die Antwort № 1

1) Ein Problem, das ich sehe, ist, dass Sie Folgendes eingegeben haben:

BasicDBObject("imageType", "2")

Ich denke, es sollte sein:

BasicDBObject("ImageType", "2")

d.h. ImageType sollte groß geschrieben werden.

2) Versuchen Sie dies auch.

BasicDBObject("ImageType", new Integer("2"))

Ich meine, Ihr ImageType ist NumberInt in MongoDB, sollten Sie also
Versuchen Sie Integer in Java. Derzeit suchen Sie nach dem String "2" und
nicht für die ganze Zahl 2.