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噢!我发现一个错误并改正了。