У меня есть следующий запрос в MongoDB -Монго агрегация запрос в golang с водителем ЕГО
db.devices.aggregate({
$match: {userId: "v73TuQqZykbxFXsWo", state: true}},
{
$project: {
userId: 1,
categorySlug: 1,
weight: {
$cond: [
{"$or": [
{$eq: ["$categorySlug", "air_fryer"] },
{$eq: ["$categorySlug", "iron"] }
] },
0, 1] }
} },
{$sort: {weight: 1}},
{ $limit : 10 }
);
Я пытаюсь написать в golang, используя драйвер ЕГО, но не в состоянии обернуть мою голову вокруг этого на все !
Как перевести это на запрос golang mgo?
Просто разделить каждую сцену и use'bson.M {} ', чтобы обернуть вокруг каждого уровня гнезда вашего запроса с кавычками, что-то вроде:' match: = bson.M {"$ match": bson.M {"userId": "...", ...}} ', затем' project: = bson.M {"$ project" ...} '. Теперь используйте mgo driver 'Pipe' с такими, как' pipe: = collection.Pipe ([] bson.M {match, project}) 'и, наконец, получить результат с помощью' pipe.All (& yourResultStruct) '. Прочтите их документы 'Pipe' [здесь] (https://godoc.org/labix.org/v2/mgo#Collection.Pipe) – Anzel