2

这是我来自 mongodb-go-driver 的函数:

func MongodbFindOne(key, value string) bson.M {
    var result bson.M
    opts := options.FindOne().SetShowRecordID(false)
    _ = Collection.FindOne(context.TODO(), bson.M{key: value}, opts).Decode(&result)
    return result
}

该功能效果很好,但我_id在结果中得到了字段。我知道 mongodb 查询从查询​​结果中排除一个字段,但我不知道如何将它与FindOne()函数一起使用:

教程点

db.removeIdDemo.find({},{_id:0});

来自没有字段名的mongodb查询结果

db.collection.find({},{_id:0, t_number:1}).toArray().map(function(ele) {return ele.t_number} );

mongo 结果(nodejs)中删除 _id :

app.get('/itesms', function(req, res) {   items.find({}, { _id: 0 }).toArray(function (err, array) {
    res.send(array);   }) });
4

1 回答 1

2

要从结果中排除字段,请使用投影。用于FindOneOptions.SetProjection()设置投影。

要明确排除该_id字段:

err = c.FindOne(ctx,
    bson.M{key: value},
    options.FindOne().SetProjection(bson.M{"_id": 0}),
).Decode(&result)
于 2020-09-30T21:12:26.127 回答