62 Commits

Author SHA1 Message Date
f39e1b9c64
rename getColl -> Collection 2025-04-18 18:34:29 -04:00
a608ddd46d
add missing nil check to anonymous struct handling logic 2025-04-18 18:31:51 -04:00
95b6e3f1bf
fix gridfs save/delete bugs 2025-04-18 18:28:44 -04:00
6e865b733d
implement more bug fixes and improvements for populating deeply nested refs 2025-04-11 23:05:14 -04:00
378b5d756a
fix nested refs not being recognized as "populated" during serialization 2025-04-10 16:47:57 -04:00
0ebe3a2a3a
rework how references are found in Document.Populate 2025-04-10 16:09:40 -04:00
f56df39be8
fix bug where result.Document.self != result 2025-04-10 16:06:55 -04:00
510a126f4b
🌺
- fix references in nested structs not being registered properly
- rework struct tag parsing
- remove debug logs
- fix bug where an unrelated field with the same prefix as another population path is erroneously marked as populated
2025-04-10 00:32:59 -04:00
c85efdc49f
improve json marshaling/unmarshaling 2025-04-08 16:13:07 -04:00
40b754668d
rework Populate api 2025-04-07 02:08:56 -04:00
5585634c83
nvm figured it out lol? 2025-04-06 22:18:27 -04:00
4de1c20938
THIS DOESN'T WORK.
but i need to commit
2025-04-06 17:41:00 -04:00
1f9d32193f
add Count function to Model
begin work on tracking populated/unpopulated fields
2025-04-05 23:44:36 -04:00
93b81308cb
improve id incrementing logic 2025-04-01 18:48:14 -04:00
322d97dc95
implement recursive deletion for gridfs files when Delete() is called on a document 2025-04-01 18:45:36 -04:00
ad7c7f38af
replace ReplaceOne with UpdateOne
this keeps timestamps intact...
2025-03-27 20:00:44 -04:00
33af8ce8e7
allow nil opts to be passed to Find* model methods 2025-03-27 17:36:51 -04:00
0a8f703eae
fix Model.typeName being empty (!!) 2025-03-27 17:34:09 -04:00
fbe65294c6
add another special case for handling datetimes during find* queries 2025-03-27 16:34:46 -04:00
42954e8502
simplify conversion of bson.DateTimes to time.Times in handleAnon 2025-03-27 16:04:26 -04:00
d328bc3fbd
fix time.Time fields not being saved
via adding a special case in the `serializeIDs` function (in document_internals.go)
2025-03-27 16:02:22 -04:00
11d31fbbc1
improve Save api
add a `SaveWith` function that accepts `SaveOptions` as a parameter, letting you tweak things like whether timestamps will be set before an insert or update operation
2025-03-27 00:12:19 -04:00
bb37212be7
fix doSave calls to check if the document's ID is a zero value 2025-03-26 23:38:19 -04:00
a44b9679aa
fix panic caused by unsafe slice-casting operation in model.go 2025-03-26 21:36:54 -04:00
a91f4b6af8
fall back to not panicking if replication isn't enabled... 2025-03-26 20:34:49 -04:00
325534a7d0
clarify in README that replication is required for autoincrementing IDs 2025-03-26 20:33:43 -04:00
1c18fc2bf6
fix compile errors caused by mongo driver API changes 2025-03-26 20:16:04 -04:00
8668e89991
update dependencies 2025-03-25 17:13:29 -04:00
d66f9dd4aa
ensure that fields tagged with bson:"-" are never considered during querying 2025-03-25 16:24:06 -04:00
cd72703068
fix more infinite recursion when registering models 2025-03-25 16:24:05 -04:00
e6a83d12e3
ensure we set each document's Model on find 2025-03-25 16:24:05 -04:00
7fc4ed46c8
ensure that the internal model field in the Document struct is tagged with bson:"-" 2025-03-25 16:24:05 -04:00
866a459855
fix infinite recursion in self-referential models 2024-09-19 19:56:25 -04:00
8c559d5926
upgrade mongodb driver to 2.0 (may revert) 2024-09-19 19:55:36 -04:00
64b9d1c241
huzzah for documentation!!! 🎉🥳 2024-09-14 18:19:45 -04:00
53e23bb52a
add Get method to model registry 2024-09-14 18:07:00 -04:00
15d032459a
remove tons of commented-out code, general cleanup 2024-09-14 15:47:17 -04:00
f9aa34ef12
unexport Model fields 2024-09-14 15:28:34 -04:00
9d791b1e3d
externalize more panic/error strings 2024-09-14 15:20:17 -04:00
8b9720b70a
correct Pull method to break out of inner loop if a match is found
let's maybe not stop pulling elements after only the first one has been processed?
2024-09-14 15:10:14 -04:00
fcd7cb2013
overhaul models to be more sensible by separating "instance" logic into a separate Document type 🪷 2024-09-14 02:09:38 -04:00
bcf3985360
unignore go.sum, ignore go.work* files 2024-09-12 23:18:53 -04:00
c2b45bfb36
update gitignore 2024-09-12 19:32:11 -04:00
0d8ad2a356
make iti_single and iti_multi sample values into functions 2024-09-12 18:31:35 -04:00
fd835efa46
[feat] add gridfs support! 🎉
(test cases included)
2024-09-12 18:10:03 -04:00
e018dad91e
update getNested utility to better handle slice fields 2024-09-12 17:50:31 -04:00
5a8f2301fc
unexport fields in Query struct 2024-09-12 17:48:45 -04:00
aa16700270
add test cases for chaining Query methods 2024-09-12 17:38:15 -04:00
95bfdf7863
add getter for Model.typeName 2024-09-12 17:25:01 -04:00
26101760cc
externalize error formats + strings 2024-09-12 17:22:42 -04:00