Я хочу поиск строки во вложенном массиве.Для каждого документа он возвращает только первый соответствующий элемент массива, хотя в документе есть более соответствующий элемент массива.Структура Mongo:
{
"bookmarkId" : "5b9ce0be489cdc34ffa9d650",
"notes" : [
{
"noteId" : "5b9ce0be489cdc34ffa9d650",
"note" : "number"
},
{
"noteId" : "5b9ce4ba489cdc34ffa9d653",
"note" : "hhgjjkg"
},
{
"noteId" : "5b9ce4cc489cdc34ffa9d654",
"note" : "test"
},
{
"noteId" : "5b9ce8a2a3219b3f166cc5de",
"note" : "hhgjjkg"
},
{
"noteId" : "5b9cf703a3219b3f166cc5ea",
"note" : "number"
}
],
"userId" : "5aeae1da9072420ff68bd48e"
}
Запрос mongodb:
db.bookmark.find({"userId" : "5aeae1da9072420ff68bd48e","notes.note":new RegExp('hgjj', 'i')},{_id:0,bookmarkId:1,notes:{$elemMatch:{note:new RegExp('hgjj', 'i')}}})
Хотя 2-й и 4-й элемент соответствуют запросу, он возвращает только первый элемент.Вывод:
{ "bookmarkId" : "5b9ce0be489cdc34ffa9d650", "notes" : [ { "noteId" : "5b9ce4ba489cdc34ffa9d653", "note" : "hhgjjkg" } ] }
Как получить все подходящие элементы из mongodb?