我需要为用户创建一些变体,以便他可以只 Select 他为其指定类别(按类别搜索)的用户或那些与数组中的类别不同的用户(在代码中可以看到数组). 我使用了文档并找到了这个答案:操作员$ne
但它不起作用,我得到了所有用户的列表
func (r *Mongo) User(ctx context.Context, query *domain.Query) ([]*User, error) {
var filter interface{}
if query.Query != "" {
filter = bson.D{primitive.E{Key: "status", Value: true}, primitive.E{Key: "category", Value: query.Query}}
} else {
filter = bson.D{primitive.E{Key: "status", Value: true}}
} - this works
if query.OtherCategory {
category := []string{"it", "medical", "sport"}
filter = bson.M{"status": true, "category": bson.M{"$ne": category}}
} - this it is not works
cursor, err := r.col.Find(ctx, filter, opts)
var results []*domain.User
if err = cursor.All(ctx, &results); err != nil {
r.logger.Error().Err(err).Msg("failed find")
return nil, err
}
return results, nil
}
如何查询以获得数组中没有这些(代码中的类别数组)类别且其状态为True的用户列表?