Skip to content

Commit 4b8a8cf

Browse files
author
iwysiu
committed
divjot comments
1 parent 2f37ce6 commit 4b8a8cf

File tree

2 files changed

+27
-36
lines changed

2 files changed

+27
-36
lines changed

mongo/gridfs/bucket.go

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -458,35 +458,38 @@ func indexDocsEqual(expected, actual bsoncore.Document) (bool, error) {
458458
return true, nil
459459
}
460460

461-
keyElemElems, err := actual.Elements()
461+
actualElems, err := actual.Elements()
462462
if err != nil {
463463
return false, err
464464
}
465-
modelKeysElems, err := expected.Elements()
465+
expectedElems, err := expected.Elements()
466466
if err != nil {
467467
return false, err
468468
}
469469

470-
if len(keyElemElems) != len(modelKeysElems) {
470+
if len(actualElems) != len(expectedElems) {
471471
return false, nil
472472
}
473473

474-
for _, elem := range keyElemElems {
475-
key := elem.Key()
476-
modelVal, err := expected.LookupErr(key)
477-
if err != nil {
474+
for idx, expectedElem := range expectedElems {
475+
actualElem := actualElems[idx]
476+
if actualElem.Key() != expectedElem.Key() {
478477
return false, nil
479478
}
480479

481-
val := elem.Value()
482-
if !val.IsNumber() || !modelVal.IsNumber() {
483-
if val.Equal(modelVal) {
480+
actualVal := actualElem.Value()
481+
expectedVal := expectedElem.Value()
482+
actualInt, actualOK := actualVal.AsInt64OK()
483+
expectedInt, expectedOK := expectedVal.AsInt64OK()
484+
485+
if !actualOK || !expectedOK {
486+
if actualVal.Equal(expectedVal) {
484487
continue
485488
}
486489
return false, nil
487490
}
488491

489-
if val.AsInt64() != modelVal.AsInt64() {
492+
if actualInt != expectedInt {
490493
return false, nil
491494
}
492495
}
@@ -509,29 +512,25 @@ func createIndexIfNotExists(ctx context.Context, iv mongo.IndexView, model mongo
509512
}
510513
modelKeysDoc := bsoncore.Document(modelKeysBytes)
511514

512-
var found bool
513-
for c.Next(ctx) && !found {
515+
for c.Next(ctx) {
514516
keyElem, err := c.Current.LookupErr("key")
515517
if err != nil {
516518
return err
517519
}
518520

519521
keyElemDoc := bsoncore.Value{Type: keyElem.Type, Data: keyElem.Value}.Document()
520522

521-
found, err = indexDocsEqual(modelKeysDoc, keyElemDoc)
523+
found, err := indexDocsEqual(modelKeysDoc, keyElemDoc)
522524
if err != nil {
523525
return err
524526
}
525-
}
526-
527-
if !found {
528-
_, err = iv.CreateOne(ctx, model)
529-
if err != nil {
530-
return err
527+
if found {
528+
return nil
531529
}
532530
}
533531

534-
return nil
532+
_, err = iv.CreateOne(ctx, model)
533+
return err
535534
}
536535

537536
// create indexes on the files and chunks collection if needed

mongo/integration/gridfs_test.go

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ func TestGridFS(x *testing.T) {
4848
})
4949
// should not create a new index if index is numerically the same
5050
mt.Run("numericallyEqualIndexes", func(mt *mtest.T) {
51-
//add indexes with floats to collections manually
51+
// add indexes with floats to collections manually
5252
res := mt.DB.RunCommand(context.Background(),
5353
bson.D{
5454
{"createIndexes", "fs.files"},
@@ -88,7 +88,9 @@ func TestGridFS(x *testing.T) {
8888
return evt.CommandName == "createIndexes"
8989
})
9090
evt := mt.GetStartedEvent()
91-
assert.Nil(mt, evt, "Expected that createIndexes wasn't called: %v", evt)
91+
if evt != nil {
92+
mt.Fatalf("expected no createIndexes events but got %v", evt.Command)
93+
}
9294
})
9395
mt.Run("UploadFromStream", func(mt *mtest.T) {
9496
var fileContent []byte
@@ -102,7 +104,9 @@ func TestGridFS(x *testing.T) {
102104
return evt.CommandName == "createIndexes"
103105
})
104106
evt := mt.GetStartedEvent()
105-
assert.Nil(mt, evt, "Expected that createIndexes wasn't called: %v", evt)
107+
if evt != nil {
108+
mt.Fatalf("expected no createIndexes events but got %v", evt.Command)
109+
}
106110
})
107111
})
108112

@@ -191,18 +195,6 @@ func findIndex(ctx context.Context, mt *mtest.T, coll *mongo.Collection, unique
191195
assert.True(mt, foundIndex, "index %v not found", keys)
192196
}
193197

194-
func countIndexes(ctx context.Context, mt *mtest.T, coll *mongo.Collection) int {
195-
mt.Helper()
196-
cur, err := coll.Indexes().List(ctx)
197-
assert.Nil(mt, err, "Indexes List error: %v", err)
198-
199-
var count int
200-
for cur.Next(ctx) {
201-
count++
202-
}
203-
return count
204-
}
205-
206198
func skipRoundTripTest(mt *mtest.T) {
207199
if runtime.GOOS != "darwin" {
208200
return

0 commit comments

Comments
 (0)