package main
import (
"context"
"fmt"
"log"
"go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
"gopkg.in/mgo.v2"
"gopkg.in/mgo.v2/bson"
)
type Person struct {
Name string
Phone string
Idcard string
}
type Student struct {
Id string `json:"id" bson:"_id"`
Mobile string `json:"mobile"` //手机号码
}
func main() {
url := "mongodb://??"
var (
client *mongo.Client
err error
)
// 建立mongodb连接
clientOptions := options.Client().ApplyURI(url)
if client, err = mongo.Connect(
context.TODO(), clientOptions); err != nil {
return
}
// 2, 选择数据库my_db
database := client.Database("my_db")
// 3, 选择表my_collection
collection := database.Collection("my_collection")
// 检查连接
err = client.Ping(context.TODO(), nil)
if err != nil {
log.Fatal(err)
}
fmt.Println("Connected to MongoDB!")
//objID := bson.ObjectIdHex("356535323637353662626665656330326239646661383261")
//objID := bson.ObjectIdHex("5e526756bbfeec02b9dfa82a")
objID, _ := primitive.ObjectIDFromHex("5e526756bbfeec02b9dfa82a")
var result Student
//err = collection.FindOne(context.TODO(), bson.M{"mobile": "1888888888"}).Decode(&result)
err = collection.FindOne(context.TODO(), bson.M{"_id": objID}).Decode(&result)
if err != nil {
log.Fatal(err)
}
fmt.Printf("Found a single document: %+v\n", result)
}