如何使用Morphia附加到文档集合中的数组?

时间:2015-11-07 19:07:21

标签: mongodb mongodb-query morphia

假设我有 DELIMITER $$ CREATE TRIGGER SprzedazInsert BEFORE INSERT ON `Sprzedaz` FOR EACH ROW BEGIN IF (SELECT COUNT(1) FROM Sprzedaz WHERE NEW.SklepNazwa = Sprzedaz.SklepNazwa AND NEW.SklepAdres = Sprzedaz.SklepAdres AND NEW.TowarNazwa = Sprzedaz.TowarNazwa AND NEW.TowarProducent = Sprzedaz.TowarProducent AND NEW.Cena = Sprzedaz.Cena AND NEW.`Data` = Sprzedaz.`Data`) > 0 THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'INSERT FAILED: Row already exists.'; ELSE IF (SELECT COUNT(1) FROM Sklep WHERE NEW.SklepNazwa = Sklep.SklepNazwa) > 0 THEN IF (NEW.SklepAdres != (SELECT Adres FROM Sklep WHERE NEW.SklepNazwa = Sklep.SklepNazwa)) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'INSERT FAILED: Wrong "Sklep" data.'; END IF; ELSE INSERT INTO `Sklep` (`SklepNazwa`,`Adres`) VALUES (NEW.SklepNazwa,NEW.SklepAdres); END IF; IF (SELECT COUNT(1) FROM Towar WHERE NEW.TowarNazwa = Towar.TowarNazwa) > 0 THEN IF (NEW.TowarProducent != (SELECT Producent FROM Towar WHERE NEW.TowarNazwa = Towar.TowarNazwa)) THEN SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'INSERT FAILED: Wrong "Towar" data.'; END IF; ELSE INSERT INTO `Towar` (`TowarNazwa`,`Producent`) VALUES (NEW.TowarNazwa,NEW.TowarProducent); END IF; END IF; END$$ 的集合。每个User都有一个user s数组的历史记录。我想在每个Event的历史记录中添加一个事件,但每个事件都是唯一的。

如何使用Morphia批量更新用户的收藏?这是一些伪代码:

user

我想我可以遍历事件并手动对用户进行更新,但批量更新操作应该更有效率。

以下是2位用户拍摄前后的示例:

List<User> users = datastore.find(....);
Set<Event> newEvents = createEvents(users);//events contains a reference the the users that are part of the event.

datastore.update(/*add event to history of user if user is part of event */);

所以这意味着创建了2个事件:4764和5312. User0001是event4764的一部分,user2是事件5312的一部分。

0 个答案:

没有答案