Колекція Монодбба містить ряд документів з наступною структурою
{
"_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)
}
}
}
хочете відфільтрувати тільки ImageType = 2 колекцію
andQueryObj.add(new BasicDBObject("Area", new BasicDBObject("$elemMatch", new BasicDBObject("images", new BasicDBObject("$elemMatch", new BasicDBObject("ImageType", "2"))))));
Цей запит не працює. як фільтрувати внутрішні елементи бази даних на основі даних ..?
Відповіді:
0 для відповіді № 11) Одне питання, яке я бачу, це те, що ви набрали:
BasicDBObject("imageType", "2")
Я думаю, це має бути:
BasicDBObject("ImageType", "2")
тобто ImageType
слід капіталізувати.
2) Також спробуйте це.
BasicDBObject("ImageType", new Integer("2"))
Я маю на увазі, що ваш ImageType - це NumberInt в MongoDB, так що ви повинні
спробуйте Integer в Java. В даний час ви шукаєте String "2", і
не для цілого 2.