这是收藏列表{ _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 等条件和过滤器一起使用?
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
你Find打错了,你将过滤器和投影传递给 Find 的过滤器参数。
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
- 1 回答
- 0 关注
- 205 浏览
添加回答
举报
0/150
提交
取消