次のシナリオから結果を取得しようとすると、セレクタまたはビューのどちらを使用するか、またはその両方を使用するか混乱しています。Cloudantでセレクタまたはビューを使用する必要がありますか?
書籍のワイルドサーチを行い、店舗名の価格と詳細。
だから、私は結果を得ることができていた正規表現
"selector": { "_id": { "$gt": null }, "type":"product", "product_name": { "$regex":"(?i)"+search } }, "fields": [ "_id", "_rev", "product_name" ]
を使用してwildsearchを行うには、セレクタを使用してみました。結果を得た後のアイデアは、結果セットのすべての_idを使用してビューにクエリを実行して、価格などの詳細を取得し、ブランチ名を他のドキュメントに格納することです。これは奇妙なことです。それを行う正しい方法。
以下は、_idの結果を取得し、それを「productId」変数として挿入した場合のアイデアです。
var input = { method : 'GET', returnedContentType : 'json', path : 'test/_design/app/_view/find_price'+"?keys=[\""+productId+"\"]", }; return WL.Server.invokeHttp(input);
ので、私はこれについて、専門家からの入力を求めています。
もう1つの質問は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"
Cloudantクエリで
ストア
{
"_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...**
}
]
}
お返事ありがとうございました。返信いただきありがとうございました。おそらく私の解説で何をしようとしているのか分かりません。要約すると、私は店の支店と価格で本のリストをリストしたいだけです。上記の文書と一緒に。私は実際に店舗を非正規化し、1つの文書にそれらを組み合わせることで支店を保管しています。残りの部分は私が再びそれを非正規化できるとは思わない。 – kkurni
2番目の質問に関して、私は実際には単一のクエリでストアブランチIDを参照するのが難しいです。 product_id、store_branch_id、および価格を持つ私の "Relationship"ドキュメント。問題は、Storeドキュメントのstore_branch_idをブランチ[]。branch_idで参照する方法がわからないことです。これは、ネストされたオブジェクトであるためです – kkurni