首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mongo-go-driver通过_id查找文档

mongo-go-driver通过_id查找文档
EN

Stack Overflow用户
提问于 2019-03-03 05:32:58
回答 3查看 9K关注 0票数 9

我正在尝试通过自动生成的_id字段查找文档。下面的代码不返回任何内容:

代码语言:javascript
复制
var documentID bson.RawValue
documentID.Type = 7
documentID.Value = []byte("5c7452c7aeb4c97e0cdb75bf")
objID := documentID.ObjectID()
value := collection.FindOne(ctx, bson.M{"_id": objID})

我提供的值是从Mongo Express获得的真实文档id。

代码语言:javascript
复制
"_id": ObjectID("5c7452c7aeb4c97e0cdb75bf")

如果你想知道我为什么要使用RawValue,我找到了使用bson.EC.ObjectID的例子,但bson包似乎没有EC类型,我还找到了一些提到bson包的例子,但我也找不到那个包。我以前是用mgo开发的,但我对mongo-go-driver是个新手,所以如果你能指出一种简单的方法来声明一个ObjectID。

EN

回答 3

Stack Overflow用户

发布于 2019-03-12 16:50:39

正如@Carlos提到的,我修改了代码,一切都运行得很好。

代码语言:javascript
复制
objID, _ := primitive.ObjectIDFromHex("5c7452c7aeb4c97e0cdb75bf")
value := collection.FindOne(ctx, bson.M{"_id": objID})
票数 25
EN

Stack Overflow用户

发布于 2019-05-18 12:53:52

你可以像这样使用一些东西:

代码语言:javascript
复制
var userDB user
objectIDS, _ := primitive.ObjectIDFromHex(userID)
collectionUser := dBClient.Database("MyDatabase").Collection("Users")
filter := bson.M{"_id": objectIDS}
err := collectionUser.FindOne(ctx, filter).Decode(&userDB)
if err != nil {
    fmt.Println("errror retrieving user userid : " + userID)
}
票数 5
EN

Stack Overflow用户

发布于 2021-03-05 15:17:13

代码语言:javascript
复制
package main

import (
    "fmt"
    "go.mongodb.org/mongo-driver/bson"
    "go.mongodb.org/mongo-driver/bson/primitive"
    "context"
)





// get collection "users" from db() which returns *mongo.Client
var userCollection = db().Database("goTest").Collection("users") 


func mongodriver_find_by_id() {
    
    
    objectId, err1 := primitive.ObjectIDFromHex("6041c3a6cfcba2fb9c4a4fd2")
    if err1 != nil {fmt.Println(err1)}


    findone_result := userCollection.FindOne(context.TODO(), bson.M{"_id":objectId})
    var bson_obj bson.M
    if err2 := findone_result.Decode(&bson_obj); err2 != nil {fmt.Println(err2)}
    fmt.Println("bson_obj:", bson_obj)


}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54963232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档