Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 问题:如何转换mongodb';s向Golang的Bson发出命令_Json_Mongodb_Go_Mongodb Query_Bson - Fatal编程技术网

Json 问题:如何转换mongodb';s向Golang的Bson发出命令

Json 问题:如何转换mongodb';s向Golang的Bson发出命令,json,mongodb,go,mongodb-query,bson,Json,Mongodb,Go,Mongodb Query,Bson,这是收藏清单 { _id : autoIncrement "P_NAME" : "Name", "P_LIST" : [ { _id : autoIncrement "P_TYPE" : "HELL", "P_POOL" : "Not Use" } ] } 我在MongoDB中使用此命令时使用了它 db.P.find({},{"P_LIST": {$elemM

这是收藏清单

{
    _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如何在MongoDB等条件和筛选器中使用Find命令?

您调用的
Find
错误,您将筛选器和投影传递到Find的filter参数中

func(coll*Collection)Find(ctx context.context,过滤器接口{},
选项…*选项.查找选项)(*光标,错误)
试着这样做:

collection.Find(
context.TODO(),
无
options.Find().SetProjection(bson.M{
“P_列表”:bson.M{
“$elemMatch”:bson.M{“\u id”:2},
“_id”:0,
},
})
)

查看有关查找的更多详细信息

谢谢您的回答。我只是试着这么做,但是
options.Find()SetProjection(bson.M{bson.M{“P_LIST”:bson.M{“$elemMatch”:bson.M{“{u id”:2}},bson.M{“{”id}})
在相关部分显示map literal中缺少键的错误。现在我想知道为什么会有这样一个错误。@SangGeol我已经更新了答案,在我传递给
SetProjection
的地图上有一个输入错误,一个是你不应该在一种情况下使用
P\u LIST
,另一个是
POLICY\u LIST
。关于其余的,你有什么问题?什么不起作用?作为一个新用户,请接受并阅读。@UlrichEckhardt噢!我发现一个错误并改正了。