我在JSON輸入中選擇節點,但找不到包含我查詢的每個數組條目的父對象詳細信息的方法。我正在使用pentaho數據集成從MongoDB輸入中使用JSON輸入查詢數據。JSON路徑父對象或等效的MongoDB查詢
我也嘗試創建一個mongodb查詢來實現相同,但似乎無法做到這一點。
下面是兩種場/時顯示的數據路徑:
$ .size_break_costs [*]大小 $ .size_break_costs [*]量
這裏是JSON源格式:
{
"_id" : ObjectId("4f1f74ecde074f383a00000f"),
"colour" : "RAVEN-SMOKE",
"name" : "Authority",
"size_break_costs" : [
{
"quantity" : NumberLong("80"),
"_id" : ObjectId("518ffc0697eee36ff3000002"),
"size" : "S"
},
{
"quantity" : NumberLong("14"),
"_id" : ObjectId("518ffc0697eee36ff3000003"),
"size" : "M"
},
{
"quantity" : NumberLong("55"),
"_id" : ObjectId("518ffc0697eee36ff3000004"),
"size" : "L"
}
],
"sku" : "SK3579"
}
我目前得到如下結果:
S,80
M,14
L,55
我想獲得的SKU和名稱,以及我的源將有多個產品(SKU /說明):
SK3579,Authority,S,80
SK3579,Authority,M,14
SK3579,Authority,L,55
,當我嘗試使用$ .sku包括,我的過程中的錯誤。
我追求的最終結果是所有產品的報告和各種尺寸的可用數量。可能有一個替代的mongodb查詢提供了這個。
編輯:
看來問題可能是由於這樣的事實,並非所有行具有相同的結構。例如,以上包含3種尺寸 - S,M,L。部分產品採用同一尺寸 - PACK。其他進來多種尺寸 - 28,30,32,33,34,36,38等
產生的錯誤是:
*的數據結構是不是資源中的一樣!我們爲json路徑[$ .sku]找到了1個值,這是不同於路徑[$ .size_break_costs [] .quantity](7個值)減退的數字的值。對於所有路徑,我們必須具有相同數量的值。
我已經試過單獨以下的MongoDB查詢這給正確的結果,但這種對應的出口不工作。尺寸和數量不會返回任何值。
查詢:
db.product_details.find({}, {sku: true, "size_break_costs.size": true, "size_break_costs.quantity": true}).pretty();
出口:
mongoexport --db brandscope_production --collection product_details --csv --out Test01.csv --fields sku,"size_break_costs.size","size_break_costs.quantity" --query '{}';
當您嘗試使用'$ .sku'包括?請將示例查詢(並在此處放置一條便條以通知我)。 – vinipsmaker
嗨@vinipsmaker感謝回覆 - 我已更新原始問題以提供信息。 – Hec
我已經讀過你的問題了(更新後的信息)。我不知道答案。我建議[設置賞金](http://stackoverflow.com/privileges/set-bounties),但你沒有足夠的分數。試試[MongoDB郵件列表](https://groups.google.com/forum/?fromgroups#!forum/mongodb-user)或[IRC頻道](irc://irc.freenode.net/#mongodb)。 – vinipsmaker