MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So fügen Sie ein eingebettetes Dokument mit Spring Data Mongodb Mongotemplate ein

Zuerst müssen Sie Event annotieren Klasse mit @Document :

@Document(collection = "events")
public class Event
{
    // rest of code
}

Der Code zum Hinzufügen eines Ereignisses sollte folgendermaßen aussehen:

@Repository
public class EventsDao {

    @Autowired
    MongoOperations template;

    public void addTrack(Track t) {
        Event e = template.findOne
            (new Query(Criteria.where("id").is("1000")), Event.class);

        if (e != null) {
            e.getTracks().add(t);
            template.save(e);
        }
    }
}

Hinweis :Sie sollten Event ändern der Klasse String _id; zu String id; damit dieses Beispiel funktioniert (oder das Abfrageliteral ändern).

Bearbeiten Das Aktualisieren eines Tracks ist ebenfalls ziemlich einfach. Angenommen, Sie möchten den Titel des ersten Titels ändern:

Event e = template.findOne(new Query(Criteria.where("_id").is("1000")), Event.class);
if (e != null) {
    e.getTracks().get(0).setTitle("when i'm 64");
    template.save(e);
}