Как создать новую модель nn с помощью thinky и связать ее с существующей?

Я только начал использовать rethinkDB и thinky. Я хотел спросить, как мне создать новый экземпляр модели, который не связан с уже существующей моделью. Например, если у меня есть модель для пиццы и начинки. Я уже создал экземпляр Pizza, как мне создать экземпляр топинга и связать его с уже существующей пиццей?

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"});

Как мне сохранить начинки, чтобы они относились к уже созданной пицце?

В документах для 1 - n отношений они делают что-то вроде:

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

В этом случае это не сработает, потому что topping.pizzas - это массив объектов, а не просто один объект.

1 ответ

Решение

Ответ довольно прост, я узнал:

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(...)
    }
}

Уверен, есть лучшие способы сделать это, но это работает.

Другие вопросы по тегам