Mercurial > code > home > repos > gcalendarwatch
view calsync/mongoclient/events_collection.go @ 56:635ff76f867c
WIP: rewrite: process load+sync in parallel between cals; simplify a lot
author | drewp@bigasterisk.com |
---|---|
date | Thu, 05 Sep 2024 13:50:40 -0700 |
parents | a9b720445bcf |
children | 6c7151126a0b |
line wrap: on
line source
package mongoclient import ( "log" "time" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo/options" ) func LogWithCal(cal MongoCal, msg ...interface{}) { log.Println("cal:", (cal.GoogleId+"........")[:8], msg) } func (c *MongoClient) UpsertOneEvent(ev MongoEvent) error { filter := bson.M{"_id": ev.Url} setFields := ev update := bson.M{"$set": setFields} _, err := c.eventsCollection.UpdateOne(c.ctx, filter, update, options.Update().SetUpsert(true)) if err != nil { return err } return nil } func (c *MongoClient) DeleteEventsUpdatedBefore(cal MongoCal, t time.Time) error { res, err := c.eventsCollection.DeleteMany( c.ctx, bson.M{"calendarUrl": cal.Url, "lastUpdated": bson.M{"$lt": t}}) LogWithCal(cal, "deleted", res.DeletedCount, "events updated before", t) if err != nil { return err } return nil }