Используйте оператор $push для документа с MongoDB GODriver без создания отдельных массивов

# #mongodb #go #mongo-go

Вопрос:

В настоящее время у меня есть код GO, который выглядит следующим образом:

    _, err = swapStruct.ReferenceCollection.UpdateByID(ctx, swapStruct.ReferenceID, bson.D{
        {"$push", bson.D{{"students", objIDs}}},
    })
 

чтобы вставить массив объектов в определенный документ под ключом «учащиеся». Однако в этом документе он в конечном итоге вставляется под ключом «students.0». Как вставить массив «objIDs» в этот документ под ключом «студенты» вместо того, чтобы он
находился под массивом «0» под ключом «студент»?

введите описание изображения здесь

Ответ №1:

$push помещает значение в массив. В своем коде вы помещаете массив как один элемент. Чтобы переместить значения массива, используйте $each :

 {"$push", bson.M{"students": bson.M{"$each": objIDs}}}