2016-10-08 20 views
0

我剛開始使用rethinkDB,並認爲。我想問一下如何創建一個與已有模型具有n-n關係的新模型實例。 例如,如果我有比薩餅和澆頭的模型。我已經創建了一個Pizza實例,我該如何創建一個頂級實例並將其鏈接到現有的披薩上?如何使用thinky創建新的n-n模型並將其鏈接到現有模型?

var Pizza = thinky.createModel("Pizza", { 
    name: type.string(), 
    size: type.string() 

}); 
var Topping = thinky.createModel("Topping", { 
    name: type.string(), 

}); 

Pizza.hasAndBelongsToMany(Topping, "toppings", "id", "id"); 
Topping.hasAndBelongsToMany(Pizza, "pizzas", "id", "id"); 

var pizza = new Pizza({name:"My pizza", size:"Large"}); 
var topping = new Topping({name:"Olive"}); 

我該如何着手保存一個頂部,以便它將涉及到已經創建的披薩?

docs,1 - n的關係,他們做這樣的事情:

topping.pizzas = pizza 
topping.saveAll({pizza: true}).then(...); 

在這種情況下,它不會工作,因爲topping.pizzas是對象的數組,而不僅僅是一個單一的對象。

回答

0

答案很簡單,我發現:

var pizza = new Pizza({name:"My pizza", size:"Large"}); 
var topping = new Topping({name:"Olive"}); 

Topping.filter({name:Olive}).run().then(function (topping) { 
    if (topping.length > 0){ 
     if (pizza.toppings == undefined){ 
      pizza.toppings = [] 
     } 
    pizza.toppings.push(topping[0]); 
    pizza.saveAll().then(...) 
    } 
} 

相當肯定有更好的方法來做到這一點,但這個工程。

相關問題