Collection.Find() returns empty response

XMLWordPrintableJSON

    • Type: Bug
    • Resolution: Done
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Environment:
      windows/amd64, go1.12.5
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      I've tried to fetch a collection with the Find method. After putting an empty document as filter, .Find() returns a cursor which is empty. Also no error occures somewhere.

      I followed the example from the README.md in the github repository.

      Tried following:

      • Lookup database with MongoDB Compass, `test.user` wasn't empty
      • .Insert works
      • .FindOne returns a document
      • Tried Mongo CLI, returns all documents
      • Tried pymongo, also returns all documents

      I made a minimal test code:

      package main
      
      import (
         "go.mongodb.org/mongo-driver/bson"
         "go.mongodb.org/mongo-driver/mongo"
         "go.mongodb.org/mongo-driver/mongo/options"
         "log"
      )
      
      // fatalErr is a helper method for errors
      func fatalErr(err error) {
         if err != nil {
            log.Fatal(err)
         }
      }
      
      // Connects to the database and returns a client or calls log.Fatal on error
      func connectDb() *mongo.Client {
         opt := options.Client().ApplyURI("mongodb://localhost:27017")
         client, err := mongo.NewClient(opt)
         fatalErr(err)
      
         fatalErr(client.Connect(nil))
         return client
      }
      
      func main() {
         db := connectDb()
         coll := db.Database("test").Collection("user")
      
         // When I use coll.FindOne(nil, bson.D{}) instead, it finds a document.
      
         // test.user contains multiple records. Find still returns nothing.
         cur, err := coll.Find(nil, bson.D{})
         fatalErr(err)
         defer fatalErr(cur.Close(nil))
      
         for cur.Next(nil) {
            // Never called
            log.Println("->", cur.ID())
         }
      
         fatalErr(cur.Err())
         log.Println("Done.")
      }
      
      

      Can someone reproduce this bug? Or has anyone tipps where I can lookup for mistakes I possible made?

       

      Greetings, Matthias Schild

            Assignee:
            Unassigned
            Reporter:
            Matthias Schild
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved: