From 398ed56d32e2871ef2a003825e41e73853837f38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20Schw=C3=B6rer?= Date: Thu, 9 Nov 2023 09:35:56 +0100 Subject: [PATCH] v0.0.305 --- goextVersion.go | 4 ++-- wmo/queryInsert.go | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/goextVersion.go b/goextVersion.go index 159fc50..6b80726 100644 --- a/goextVersion.go +++ b/goextVersion.go @@ -1,5 +1,5 @@ package goext -const GoextVersion = "0.0.304" +const GoextVersion = "0.0.305" -const GoextVersionTimestamp = "2023-11-09T09:26:46+0100" +const GoextVersionTimestamp = "2023-11-09T09:35:56+0100" diff --git a/wmo/queryInsert.go b/wmo/queryInsert.go index 175489b..595f6b0 100644 --- a/wmo/queryInsert.go +++ b/wmo/queryInsert.go @@ -21,6 +21,20 @@ func (c *Coll[TData]) InsertOne(ctx context.Context, valueIn TData) (TData, erro return *r, nil } +// InsertOneUnchecked behaves the same as InsertOne, but allows arbitrary data to be inserted (valueIn is any instead of TData) +func (c *Coll[TData]) InsertOneUnchecked(ctx context.Context, valueIn any) (TData, error) { + insRes, err := c.coll.InsertOne(ctx, valueIn) + if err != nil { + return *new(TData), exerr.Wrap(err, "mongo-query[insert-one] failed").Str("collection", c.Name()).Build() + } + + r, err := c.findOneInternal(ctx, bson.M{"_id": insRes.InsertedID}, false) + if err != nil { + return *new(TData), exerr.Wrap(err, "mongo-query[insert-one] failed").Str("collection", c.Name()).Build() + } + return *r, nil +} + func (c *Coll[TData]) InsertMany(ctx context.Context, valueIn []TData) (*mongo.InsertManyResult, error) { insRes, err := c.coll.InsertMany(ctx, langext.ArrayToInterface(valueIn)) if err != nil {