Скопируйте все данные столбцов коллекции, кроме одного, в другую коллекцию в mongodb

#mongodb #mongoose #aggregation-framework

Вопрос:

У меня есть один образец документа коллекции, который находится здесь

  {
  "name" : "1234567890",
  "mobile" : "Test",
  "user_id":1
}
 

Формат документа для сбора выходных данных

 "test_column" :  {
  "name" : "1234567890",
  "mobile" : "Test"
}
 

Мое требование состоит в том, чтобы скопировать весь столбец коллекции в test_column exclude user_id .

Я использую приведенный ниже запрос, но он копирует все столбцы, но я хочу исключить один

 db.collectionname.aggregate(([{"$project":{"test_column":"$ROOT"}}{"$out":tempCollection}]));
 

Ответ №1:

Вы можете добавить еще $project один этап, чтобы исключить user_id :

 db.collectionname.aggregate([
    {  "$project":{ "test_column":"$ROOT" }},
    {  "$project":{ "test_column.user_id": 0 }},
    {  "$out": tempCollection }
    ]
);
 

Игровая площадка Монго