使用loopback-mongodb-connector在looback-angularjs sdk中查询$ elemMatch?

时间:2016-02-22 06:45:23

标签: angularjs node.js mongodb loopbackjs angular-loopback

我在mongodb有一个名为Dish的集合,样本数据是 -

[{
"_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 个答案:

答案 0 :(得分:0)

在您的ngApp控制器中传递Dish对象,然后您可以使用Dish.find过滤器创建一个过滤器api,它将在内部搜索mongo以查找所有具有不可分割性的菜肴作为洋葱。

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/

上的文档