$elemMatch запрос в looback-angularjs SDK с loopback-mongodb-соединителем?
У меня есть коллекция под названием Dish в mongodb, пример данных -
[{
"_id": ObjectId("56c839b969431a9913cafa65"),
"name": "Dish 01",
"description": "Dish 01 description",
"ingredients": [{
"id": "56c4a40bf97c039d44e89185",
"name": "onion",
}, {
"id": "56c4a40bf97c039d44e89145",
"name": "salt",
}, {
"id": "56c4a40bf97c039d44e89176",
"name": "spices",
}],
"category": "entree",
"image": "https://s3-ap-southeast-1.amazonaws.com/sichu-bucket/2016-02-20T13:10:31.334Zapi.js"
}, {
"_id": ObjectId("56c839b969431a9913cafa70"),
"name": "Dish 02",
"description": "Dish 02 description",
"ingredients": [{
"id": "56c4a40bf97c039d44e89185",
"name": "onion",
}, {
"id": "56c4a40bf97c039d44e89145",
"name": "oil",
}],
"category": "main",
"image": "https://s3-ap-southeast-1.amazonaws.com/sichu-bucket/2016-02-20T13:10:31.334Zapi.js"
}]
Теперь я хочу блюда, в которых есть лук, и хочу получить результат, используя loopback-angularjs-sdk
Я добавил это в мой файл Dish.json
"settings": {
"mongodb": {
"allowExtendedOperators": true
}
}
Я не знаю, как это сделать. Пожалуйста, ведите меня к этому.
1 ответ
В вашем контроллере ngApp передайте объект Dish, а затем вы можете использовать фильтр Dish.find для создания API-интерфейса фильтра, который будет искать в монго все блюда с такими ингредиентами, как лук.
Dish.find({"filter": {"where": {"indegredients.id": "56c4a40bf97c039d44e89185"}}}, function (dishes) {
});
Подробнее о фильтре API или о том, как вызывать их через угловой SDK, вы можете использовать. https://docs.strongloop.com/display/public/LB/Where+filter https://docs.strongloop.com/display/public/LB/AngularJS+JavaScript+SDK
Кроме того, вы также можете запустить локальный сервер для документации loopback angular sdk.
Для создания угловой документации SDK, что вы можете сделать, это
lb-ng-doc client/js/services/lb-services.js
Просмотрите документацию по адресу http://localhost:3030/.