У меня есть поле базы данных:
"sessionid": "C-dhf",
"given": "NURSE ",
"family": "SHARK",
"name": "SHARK, NURSE",
Я пытаюсь создать запрос, который будет запрашивать базу данных, ища записи о том, что семейство начинается с "s", а имя начинается с "n". Я использую следующее для создания фильтра.
{"sessionid", "C-dhf"},
{"$and", bson.A{
bson.D{{"family", primitive.Regex{Pattern: "^s", Options: "i"}}},
bson.D{{"given", primitive.Regex{Pattern: "^n", Options: "i"}}},
}},
}
Значение фильтра, использованное в поиске:
[{sessionid C-dhf} {$and [[{family {"pattern": "^s", "options": "i"}}] [{given {"pattern": "^n", "options": "i"}}]]}]
Находка:
cursor, err := collection.Find(context.TODO(), filter, findOptions)
Он возвращает все записи в БД, как будто он даже не смотрит на фильтр.
Каков правильный синтаксис go для запроса с подстановочными знаками из нескольких полей?