Я недавно создал новую базу данных / коллекцию с простым документом Json на mLab.Я включил API данных и экспериментирую с фильтрацией результатов через параметр запроса.К сожалению, полный документ слишком велик для размещения в моем приложении.
Вот как выглядит документ:
{
"_id": {
"$oid": "5c59f496hv7ec06f4f560f4c"
},
"songs": [
{
"title": "title 1",
"artist": "musician 1",
"album": "fake album",
"minsec": "2:04",
"songid": "11100"
},
{
"title": "fake title",
"artist": "musician 1",
"album": "album 2",
"minsec": "2:57",
"songid": "11102"
},
{
"title": "title 3",
"artist": "musician 2",
"album": "album 3",
"minsec": "3:06",
"songid": "11078"
},
{
"title": "title 4",
"artist": "fake musician",
"album": "album 4",
"minsec": "2:28",
"songid": "11103"
}
]
}
Мне бы хотелось найти документ со строкойэто вернуло бы любой объект из массива, который имеет значение, которое включает эту строку.Например, поиск «поддельного», который вернул бы первый, второй и четвертый объект со следующим URL:
https://api.mlab.com/api/1/databases/<my-db>/collections/<my-collection>?q=fake&apiKey=<my-apikey>
Похоже, что API данных mLab только обрабатывает запросы ("q =") с использованием нотации jsonи даже зная, что я до сих пор не могу понять, как вернуть что-либо, кроме пустого массива или
"Не удалось проанализировать параметр JSON, перепроверьте синтаксис и кодировку"
ошибка.
Спасибо за любую помощь, которую вы, ребята, можете предложить!
Обновление Я вставил каждый объект песни как отдельный документ, а не как один большой документ, и могу фильтроватьони используют определенные запросы ... все еще не уверены, как реализовать более универсальное решение для фильтрации результатов со значениями, которые включают / содержат запрос.
Для тех, кто ищет помощь в вопросах, связанных с mlab, я бы предложил обратиться кк их очень полезной команде поддержки.
Окончательное обновление Я понял, как использовать регулярные выражения для фильтрации моих результатов.все:
{$regex: '(?i).*<string>.*'}