У меня есть запись в коллекции, подобной этой:
{
"overlaps": [
{"BB1": "itemA", "iou": 0.1, "BB2": "itemB"},
{"BB1": "itemB", "iou": 0.45, "BB2": "itemC"}
],
"elemID": 1,
"otherfield2": "whateverelse"
}
Я хочу найти записи, у которых есть элемент в массиве перекрытий, где перекрытия. BB1: "itemA" и перекрытия. BB2: "itemC",Но для того же элемента в массиве перекрытий.
Например, приведенный здесь пример не должен быть восстановлен, потому что у меня есть перекрытия. BB1: «itemA» и перекрытия. BB2: «itemC», но не в одном и том же элементе.
Допустимым элементом будет:
{
"overlaps": [
{"BB1": "itemA", "iou": 0.1, "BB2": "itemC"},
{"BB1": "itemB", "iou": 0.45, "BB2": "itemC"}
],
"elemID": 2,
"otherfield2": "whateverelse"
}
Я пробовал это, но не работает
cursor = record1.find({"$and": [{"overlaps.BB1":"itemA"},{"overlaps.BB2":"itemC"}]})
Как я могу сделать эту работу?Или я должен изменить свою структуру данных, чтобы иметь возможность выполнять такие запросы?
Спасибо