在尝试从以下场景中获取结果时,我对是否使用选择器或视图或两者都使用感到困惑:
我需要搜索一本书并返回书籍的结果加上价格和商店分店名称的详细信息。
所以我尝试使用选择器使用正则表达式进行 Wildsearch
"selector": { "_id": { "$gt": null }, "type":"product", "product_name": { "$regex":"(?i)"+search } }, "fields": [ "_id", "_rev", "product_name" ]
我能够得到结果。得到结果后的想法是使用结果集和查询中的所有 _id 来获取更多详细信息,例如价格和在其他文档上存储分支名称,我觉得这有点奇怪,我不确定是不是正确的方法。
下面是我得到 _id 的结果并将其作为“productId”变量插入后的想法。
var input = { method : 'GET', returnedContentType : 'json', path : 'test/_design/app/_view/find_price'+"?keys=[\""+productId+"\"]", }; return WL.Server.invokeHttp(input);
所以我要求专家对此提供意见。
另一个问题是如何获取 store_branch_name?是否可以在一个视图中完成,我们可以在其中获取产品详细信息、价格和商店分店名称?还是我需要有几个视图来实现这一点?
预期结果
product_name (from book document) : Book 1 branch_name (from branch array in Store document) : store 1 branch one price ( from relationship document) : 79.9
参考:
书
"_id": "book1",
"_rev": "1...b",
"product_name": "Book 1",
"type": "book"
"_id": "book2",
"_rev": "1...b",
"product_name": "Book 2 etc",
"type": "book"
关系
"_id": "c...5",
"_rev": "3...",
"type": "relationship",
"product_id": "book1",
"store_branch_id": "Store1_branch1",
"price": "79.9"
店铺
{
"_id": "store1",
"_rev": "1...2",
"store_name": "Store 1 Name",
"type": "stores",
"branch": [
{
"branch_id": "store1_branch1",
"branch_name": "store 1 branch one",
"address": {
"street": "some address",
"postalcode": "33490",
"type": "addresses"
},
"geolocation": {
"coordinates": [
42.34493,
-71.093232
],
"type": "point"
},
"type": "storebranch"
},
{
"branch_id": "store1_branch2",
"branch_name":
**details ommit...**
}
]
}