Поиск вложенных массивов в документах MongoDB - PullRequest
0 голосов
/ 18 января 2012

Я занимаюсь разработкой веб-приложения с использованием Codeigniter и MongoDB. Пользователи могут сохранять свои любимые звуки в виде «закладок». Каждый пользователь получает один документ, а затем каждый звук добавляется в массив в этом документе, называемый звуками. Каждый звук получил набор тегов, который также сохраняется в закладке. Как я могу искать закладки пользователей в их документе закладок? Я хочу, чтобы они могли осуществлять поиск по тегам (из массива тегов).

Это мой документ MongoDB:

{
    "_id": ObjectId("4f15846a112bf6b725000000"),
    "owner": {
        "user_id": ObjectId("4f147e1709ab662061000000"),
        "session_id": "3424e3155a01e78c50a8498f78cc51d9"
    },
    "sound_files": [
        {
            "sound_id": ObjectId("4f1480ff09ab661a61000001"),
            "sound_url": "http://s3.amazonaws.com/4c/864ea8e92e6ec4408e248cc9brf008bd/18.wav",
            "sound_tags": [
                "sound",
                "new york",
                "cool"
            ]
        },
                {
            "sound_id": ObjectId("4f1480ff09ab661a61000001"),
            "sound_url": "http://s3.amazonaws.com/4c/864ea8e92e6ec4408e248cc9brf008bd/12.wav",
            "sound_tags": [
                "sound",
                "happy",
                "ocean"
            ]
        }
    ],
    "total": 1
}

1 Ответ

1 голос
/ 18 января 2012
db.col.find({'sound_files.sound_tags':"sound"})

РЕДАКТИРОВАТЬ: Не совсем то, что ищет OP, по-видимому.В ожидании более точного описания требования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...