sql >> Base de Datos >  >> NoSQL >> MongoDB

$proyecto en $agregación de búsqueda

El principal desafío es que desea todos los campos del documento principal (ya que no los conoces todos) más solo 2 de la lista.

Esto debería hacerlo:

{
  $project: {
    "_id": 0,
    "document": "$$CURRENT",
    "list._id": "$$CURRENT.list._id",
    "list.name": "$$CURRENT.list.name"
  }
}, {
  $project: {
    "document.list": 0
  }
}, {
  $addFields: {
    "document.list._id": "$$CURRENT.list._id",
    "document.list.name": "$$CURRENT.list.name"
  }
}, {
  $replaceRoot: {
    newRoot: "$document"
  }
}

Pasa por algunas etapas pero hace el trabajo :). Tomaría el documento actual y solo los campos de la lista que desee. Luego eliminaría del documento actual su lista. Luego agregaría a ese mismo documento la lista (ya que esa es con los campos específicos que queremos). Luego, agregaría esos campos al documento y, por último, reemplazaría la raíz con ese documento.

Véalo aquí funcionando .