0
我有兩個表如下一個主機和一個用戶。RethinkDB表加入
主持人:
{
"host": "server1",
"address": "192.168.1.22", 'users': ["Magneto", "Professor Xavier", "Storm"]
},
{
"host": "server2",
"address": "192.168.1.23", 'users': ["Storm"]
},
{
"host": "server3",
"address": "192.168.1.24", 'users': ["Magneto", "Storm"]
}
用戶:
{
"hero": "Magneto",
"name": "Max Eisenhardt",
"aka": ["Magnus", "Erik Lehnsherr", "Lehnsherr"],
"magazine_titles": ["Alpha Flight", "Avengers", "Avengers West Coast"]
},
{
"hero": "Professor Xavier",
"name": "Charles Francis Xavier",
"magazine_titles": ["Alpha Flight", "Avengers", "Bishop", "Defenders"]
},
{
"hero": "Storm",
"name": "Ororo Monroe",
"magazine_titles": ["Amazing Spider-Man vs. Wolverine", "Excalibur",
"Fantastic Four", "Iron Fist"]
}
我試圖創建一個從主機連接查詢,以獲得用戶最終得到這樣的事情對於每個服務器。基本上將用戶數據組合到服務器文檔中。例如
{
"host": "server3",
"address": "192.168.1.24",
"users": [
{
"hero": "Storm",
"name": "Ororo Monroe",
"magazine_titles": [
"Amazing Spider-Man vs. Wolverine",
"Excalibur",
"Fantastic Four",
"Iron Fist"
]
},
{
"hero": "Magneto",
"name": "Max Eisenhardt",
"aka": [
"Magnus",
"Erik Lehnsherr",
"Lehnsherr"
],
"magazine_titles": [
"Alpha Flight",
"Avengers",
"Avengers West Coast"
]
}
]
}
由於用戶包含服務器「用戶」內陣,我不能完全工作了我應該怎麼在這裏進行我的查詢?
這是我做過嘗試,但至今沒有運氣:
r.db('data').table("hosts")
.concatMap(function (x) {
return x("users").map(function (usr) {
return x.merge({users: usr});
});
}).eqJoin("users", r.db('data').table("users"))