mongodb - json格式 - 在Golang中,如何把mongodb的命令转换为Bson

这是collection列表


{


 _id : autoIncrement


"P_NAME" :"Name",


"P_LIST" : [


 {


 _id : autoIncrement


"P_TYPE" :"HELL",


"P_POOL" :"Not Use"


 }


 ]


}



在MongoDB中使用该命令。


db.P.find({},{"P_LIST": {$elemMatch: {_id:2}}, _id: 0})



同样,在Golang中,我试图搜索这样的条件,但它不能工作。


collection.Find(context.TODO(), bson.M{bson.M{}, bson.M{"P_LIST":bson.M{"$elemMatch":bson.M{"_id":2}}, bson.M{"_id": 0}}})



Golang如何使用Find命令和MongoDB这样的条件和过滤器?

时间: 作者:

调用Find错误,将过滤器传递给Find param的过滤器。


func (coll *Collection) Find(ctx context.Context, filter interface{},


 opts ...*options.FindOptions) (*Cursor, error)



尝试这样做:


collection.Find(


 context.TODO(),


 nil,


 options.Find().SetProjection(bson.M{


"P_LIST": bson.M{


"$elemMatch": bson.M{"_id": 2},


"_id": 0,


 },


 })


)



在这里查看有关Find的更多详细信息

作者:
...