| | err = coll.FindOne(context.TODO(), bson.D{{"firstName", Mike}}).Decode(&result) |
| [{firstName Mike}, {lastName Smith} ...] |
|
| | cursor, err := coll.Find(context.TODO(), bson.D{{"age", bson.D{{"$gte", 46}}}}) |
| [{firstName Kyle}, {age 51}, ... ] | | [{firstName Omar}, {age 47}, ... ] |
|
| | result, err := coll.InsertOne( | | context.TODO(), | | bson.D{ | | {"firstName", "Aliya"}, | | {"lastName", "Sanders"} | | } | | ) |
|
Insert Multiple Documents
| | docs := []any { | | bson.D{{"firstName", "Erik"}, {"age", 27}}, | | bson.D{{"firstName", "Mohammad"}, {"lastName", "Ahmad"}, {"age", 10}}, | | bson.D{{"firstName", "Todd"}}, | | bson.D{{"firstName", "Juan"}, {"lastName", "Pablo"}} | | } | | | result, err := coll.InsertMany(context.TODO(), docs) |
|
| | result, err := coll.UpdateOne( | | context.TODO(), | | bson.D{{"firstName", "Erik"}}, | | bson.D{{"$set", bson.D{{"age", 28}}}} | | ) | | fmt.Printf("Number of modified documents: %d\n", result.ModifiedCount) |
| Number of modified documents: 1 |
|
Update Multiple Documents
| | result, err := coll.UpdateMany( | | context.TODO(), | | bson.D{{"age", bson.D{{"$gte", 65}}}}, | | bson.D{{"$set", bson.D{{"classification", "senior"}}}} | | ) | | fmt.Printf("Number of modified documents: %d\n", result.ModifiedCount) |
| Number of modified documents: 4 |
|
Update Arrays in Documents
| | result, err := coll.UpdateMany( | | context.TODO(), | | bson.D{}, | | bson.D{{"$push", bson.D{{"hobbies", "painting"}}}} | | ) |
| [{firstName Xiao}, {hobbies ["painting"]}, ... ] | | [{firstName Omar}, {hobbies ["kayaking", "painting"]}, ... ] | | ... |
|
| | result, err := coll.ReplaceOne( | | context.TODO(), | | bson.D{{"firstName", "Mick"}, {"lastName", "Salazar"}}, | | bson.D{{"firstName", "Michael"}, {"lastName", "Salazar Jr."}} | | ) |
| [{{firstName Michael}, {lastName Salazar Jr.} }] |
|
| | result, err := coll.DeleteOne( | | context.TODO(), | | bson.D{{"firstName", "Xiao"}} | | ) |
|
Delete Multiple Documents
| | results, err := coll.DeleteMany( | | context.TODO(), | | bson.D{{"age", bson.D{{"$lte", 12}}}} | | ) |
|
| | models := []mongo.WriteModel{ | | mongo.NewInsertOneModel().SetDocument(bson.D{{"firstName", "John"}, {"age", 5}}), | | mongo.NewUpdateOneModel().SetFilter(bson.D{{"firstName", "Juan"}}). | | SetUpdate(bson.D{{"$set", bson.D{{"age", 12}}}}), | | } | | opts := options.BulkWrite().SetOrdered(true) | | | results, err := coll.BulkWrite(context.TODO(), models, opts) |
| [{firstName John}, {age 5} ... ] | | [{firstName Juan}, {age 12} ... ] |
|
| | pipeline := mongo.Pipeline{bson.D{{"$match", bson.D{{"operationType", "insert"}}}}} | | cs, err := coll.Watch(context.TODO(), pipeline) |
|
Access Data from a Cursor Iteratively
| | cursor, err := coll.Find(context.TODO(), bson.D{}) | | | for cursor.Next(context.TODO()) { | | var result bson.D | | if err := cursor.Decode(&result); err != nil { | | log.Fatal(err) | | } | | fmt.Println(result) | | } |
| [{firstName Doug} ... ] | | [{firstName Erik} ...] | | [{firstName Oleg} ...] | | ... |
|
Access Data from a Cursor as an Array
| | cursor, err := coll.Find(context.TODO(), bson.D{}) | | | var results []bson.D | | if err = cursor.All(context.TODO(), &results); err != nil { | | panic(err) | | } |
| [{firstName Mike} ... ] | | [{firstName Edgar} ...] | | [{firstName Freddie} ...] | | ... |
|
| | count, err := coll.CountDocuments(context.TODO(), bson.D{}) |
|
List Distinct Field Values
| | var results []string | | err = coll.Distinct(context.TODO(), "firstName", bson.D{}).Decode(&results) |
|
Limit the Number of Documents Retrieved
| | cursor, err := coll.Find(context.TODO(), bson.D{}, options.Find().SetLimit(2)) |
| [{firstName Xiao} ... ] | | [{firstName Oleg} ...] |
|
| | | cursor, err := coll.Find(context.TODO(), bson.D{}, options.Find().SetSkip(4)) |
| [{firstName Sandy} ... ] | | [{firstName Michael} ...] |
|
| | cursor, err := coll.Find(context.TODO(), bson.D{}, options.Find().SetSort(bson.D{{"age", 1}})) |
| [{firstName Dev} {age 5} ... ] | | [{firstName Jose} {age 7} ... ] | | [{firstName Om} {age 8} ... ] |
|
Project Document Fields in Results
| | cursor, err := coll.Find( | | context.TODO(), | | bson.D{}, | | options.Find().SetProjection( | | bson.D{{"age", 0}, {"_id",0}} | | ) | | ) |
| [{firstName Lester} {lastName Franklin}] | | [{firstName Wendall} {lastName Griffin}] | | ... |
|
| | model := mongo.IndexModel{Keys: bson.D{{"firstName", 1}, {"lastName", -1}}} | | name, err := coll.Indexes().CreateOne(context.TODO(), model) |
|
| | | cursor, err := coll.Find(context.TODO(), bson.D{{"$text", bson.D{{"$search", "arts"}}}}) |
| [{"firstName": "Emily" , "biography": "I am involved with arts and culture in my community."} ... ] | | [{"firstName": "Juan" , "biography": "I attended the School of Arts for cello performance."} ... ] |
|