Todos los productos
Search
Centro de documentos

DataWorks:Origen de datos de MongoDB

Última actualización: Sep 25, 2026

DataWorks ofrece sincronización bidireccional de datos con MongoDB. En este tema se describen las funciones de sincronización de datos que DataWorks proporciona para MongoDB.

Versiones compatibles

Solo se admiten las versiones 4.x, 5.x, 6.x, 7.x y 8.0 de MongoDB.

Notas de uso

  • Conéctese a una base de datos de MongoDB mediante una cuenta creada específicamente para esa base de datos. Si utiliza un origen de datos de ApsaraDB for MongoDB, se crea una cuenta root de forma predeterminada. Por motivos de seguridad, se recomienda no usar la cuenta root al agregar un origen de datos de MongoDB.

  • Si utiliza un clúster fragmentado de MongoDB, debe configurar la dirección de un nodo mongos para el origen de datos. No configure la dirección de un nodo mongod/shard. De lo contrario, la tarea de sincronización podría consultar datos únicamente del shard especificado en lugar de todo el conjunto de datos. Para obtener más información sobre mongos y mongod, consulte la documentación de mongos y mongod.

  • Si la concurrencia es mayor que 1, todos los campos _id de la colección configurada para la tarea de sincronización deben tener el mismo tipo de datos. Por ejemplo, todos los campos _id deben ser de tipo string u ObjectId. De lo contrario, es posible que algunos datos no se sincronicen.

    Nota
    • Cuando la concurrencia es mayor que 1, la tarea se divide con base en el campo _id. Por lo tanto, en este escenario no se admiten tipos de datos mixtos para el campo _id. Si el campo _id contiene varios tipos de datos, establezca la concurrencia en 1 para la sincronización. Para ello, no configure el parámetro splitFactor o establezca el parámetro splitFactor en 1.

  • Data Integration no admite el tipo array. Sin embargo, MongoDB sí lo admite y ofrece una función de indexación muy potente. Puede configurar ciertos parámetros para convertir cadenas en arreglos de MongoDB. Después de la conversión, podrá escribir los datos en MongoDB de forma paralela.

  • Las bases de datos de MongoDB autogestionadas no admiten el acceso por red pública. Solo se puede acceder a ellas a través de la red interna de Alibaba Cloud.

  • No se admiten los clústeres de MongoDB desplegados con docker.

  • No es posible utilizar el parámetro query para leer datos de columnas específicas.

  • En una tarea de sincronización por lotes, si Data Integration no logra recuperar la estructura de campos desde MongoDB, genera asignaciones de campos para seis campos de forma predeterminada. Los nombres de estos campos son col1, col2, col3, col4, col5 y col6.

  • Durante la ejecución de la tarea, se usa de forma predeterminada el comando splitVector para fragmentarla. Algunas versiones de MongoDB no admiten el comando splitVector, lo cual puede provocar el error no such cmd splitVector. Para evitarlo, haga clic en el icono image en la configuración de la tarea, cambie al editor de código y agregue el siguiente parámetro a la configuración de parámetros de MongoDB para impedir el uso de splitVector.

    "useSplitVector" : false

Tipos de campo compatibles

Tipos de datos de MongoDB que admite MongoDB Reader

Data Integration admite la mayoría de los tipos de datos de MongoDB, aunque no todos. Compruebe que sus tipos de datos sean compatibles.

Cuando Data Integration lee los tipos de datos admitidos, ejecuta las siguientes operaciones:

  • Para los tipos de datos primitivos, Data Integration lee automáticamente los datos de la ruta correspondiente según el nombre del campo configurado en el parámetro column. Para obtener más información, consulte Appendix: Sample script and parameter description for MongoDB. También convierte el tipo de datos de manera automática, por lo que no es necesario especificar la propiedad type de la columna.

    Tipo

    Lectura por lotes (MongoDB Reader)

    Descripción

    ObjectId

    Compatible

    Tipo de identificador de objeto.

    Double

    Compatible

    Tipo de número de punto flotante de 64 bits.

    Entero de 32 bits

    Compatible

    Número entero de 32 bits.

    Entero de 64 bits

    Compatible

    Número entero de 64 bits.

    Decimal128

    Compatible

    Tipo Decimal128.

    Nota

    Si un campo se configura como tipo anidado o de combinación, se procesa como un objeto durante la serialización JSON. Debe agregar el parámetro decimal128OutputType y establecerlo en bigDecimal para generar los datos como valor decimal.

    String

    Compatible

    Tipo de cadena de texto.

    Boolean

    Compatible

    Tipo booleano.

    Timestamp

    Compatible

    Tipo de marca de tiempo.

    Nota

    BsonTimestamp almacena marcas de tiempo. No es necesario considerar el impacto de las zonas horarias. Para obtener más información, consulte Problemas de zona horaria en MongoDB.

    Date

    Compatible

    Tipo de fecha.

  • Para algunos tipos de datos complejos, puede configurar la propiedad type de la columna y aplicar un procesamiento personalizado.

    Tipo

    Lectura por lotes (MongoDB Reader)

    Descripción

    Document

    Compatible

    Tipo de documento incrustado.

    • Si no se configura la propiedad type, el documento se convierte directamente mediante serialización JSON.

    • Si la propiedad type se establece en document, el campo es de tipo anidado. MongoDB Reader lee las propiedades del documento según la ruta. Para ver un ejemplo detallado, consulte Example 2: Recursively parsing a multi-level nested Document más adelante.

    Array

    Compatible

    Tipo de arreglo.

    • Si type se establece en array.json o arrays, los datos se procesan directamente mediante serialización JSON.

    • Si type se establece en array o document.array, los elementos se concatenan en una cadena. El separador, definido en la propiedad splitter de la columna, es una coma (,) de forma predeterminada.

    Importante

    Data Integration no admite el tipo array. Sin embargo, MongoDB sí lo admite y ofrece una función de indexación muy potente. Puede configurar ciertos parámetros para convertir cadenas en arreglos de MongoDB. Después de la conversión, podrá escribir los datos en MongoDB de forma paralela.

Tipo de datos especial de Data Integration: combine

Tipo

Lectura por lotes (MongoDB Reader)

Descripción

Combine

Compatible

Tipo de datos personalizado de Data Integration.

Si type se establece en combine, MongoDB Reader elimina las claves correspondientes a las columnas configuradas y serializa toda la información restante del documento en una salida JSON. Para ver un ejemplo detallado, consulte Example 1: Using the combine type más adelante.

Asignaciones de tipos de datos de MongoDB Reader

A continuación se muestra una tabla que lista las asignaciones entre los tipos de datos de MongoDB y los de Data Integration para MongoDB Reader.

Categoría de tipo convertido

Tipo de datos de MongoDB

LONG

INT, LONG, document.INT y document.LONG

DOUBLE

DOUBLE y document.DOUBLE

STRING

STRING, ARRAY, document.STRING, document.ARRAY y COMBINE

DATE

DATE y document.DATE

BOOLEAN

BOOL y document.BOOL

BYTES

BYTES y document.BYTES

Asignaciones de tipos de datos de MongoDB Writer

Categoría de tipo

Tipo de datos de MongoDB

Entero

INT y LONG

Punto flotante

DOUBLE

Cadena

STRING y ARRAY

Fecha y hora

DATE

Booleano

BOOL

Binario

BYTES

Ejemplo 1: Uso del tipo combine

El tipo de datos combine del plugin MongoDB Reader permite combinar varios campos de un documento de MongoDB en una sola cadena JSON. Por ejemplo, suponga que desea importar campos de tres documentos de MongoDB a MaxCompute. En el siguiente ejemplo, los campos se representan mediante claves en lugar de pares clave-valor. Los campos a y b son comunes a los tres documentos, mientras que x_n es un campo variable.

  • doc1: a b x_1 x_2

  • doc2: a b x_2 x_3 x_4

  • doc3: a b x_5

En el archivo de configuración, debe especificar explícitamente los campos que requieren una asignación uno a uno. Para los campos que desea combinar, asigne un nombre nuevo distinto de cualquier nombre de campo existente en el documento y establezca el tipo en COMBINE. El siguiente código muestra un ejemplo.

"column": [
{
"name": "a",
"type": "string",
},
{
"name": "b",
"type": "string",
},
{
"name": "doc",
"type": "combine",
}
]

La siguiente tabla muestra la salida final en MaxCompute.

odps_column1

odps_column2

odps_column3

a

b

{x_1,x_2}

a

b

{x_2,x_3,x_4}

a

b

{x_5}

Nota

Después de usar el tipo combine para fusionar varios campos de un documento de MongoDB, los campos comunes se eliminan automáticamente cuando la salida se asigna a MaxCompute. Solo se conservan los campos únicos del documento.

Por ejemplo, a y b son campos comunes en todos los documentos. Tras combinar los campos del documento doc1: a b x_1 x_2 con el tipo combine, la salida es {a,b,x_1,x_2}. Cuando este resultado se asigna a MaxCompute, los campos comunes a y b se eliminan. La salida final es {x_1,x_2}.

Ejemplo 2: Análisis sintáctico recursivo de un documento anidado de varios niveles

Si un documento de MongoDB tiene varios niveles de anidamiento, puede configurar el tipo document para analizarlo sintácticamente de forma recursiva. El siguiente código muestra un ejemplo.

  • Datos de origen en MongoDB:

    {
        "name": "name1",
        "a":
        {
            "b":
            {
                "c": "this is value"
            }
        }
    }
  • Configuración de columnas de MongoDB:

    {"name":"_id","type":"string"}
    {"name":"name","type":"string"}
    {"name":"a.b.c","type":"document"}

    Una vez completada la configuración, los campos de origen y destino se asignan de la siguiente manera: _id se asigna a id, name se asigna a name y a.b.c se asigna a c.

Con la configuración anterior, el valor del campo de origen anidado a.b.c se escribe en el campo de destino c. Una vez que se ejecuta la tarea de sincronización, los datos escritos en el destino son this is value.

Agregar un origen de datos

Antes de desarrollar una tarea de sincronización en DataWorks, debe agregar el origen de datos requerido siguiendo las instrucciones de Data source configuration. Puede consultar las descripciones de parámetros en la consola de DataWorks para comprender el significado de cada parámetro al agregar un origen de datos.

Desarrollar una tarea de sincronización de datos

Para conocer el punto de entrada y el procedimiento de configuración de una tarea de sincronización, consulte las siguientes guías de configuración.

Configurar una tarea de sincronización por lotes para una sola tabla

Configurar una tarea de sincronización en tiempo real para una sola tabla

Consulte Configure a real-time synchronization task for a single table.

Configurar una tarea de sincronización para una base de datos completa

Es posible configurar tareas de sincronización por lotes, sincronización en tiempo real completa e incremental, o sincronización en tiempo real desde bases de datos fragmentadas para una base de datos completa. Para obtener más información, consulte Batch synchronization task for an entire database y Configure a real-time synchronization task for an entire database.

Mejores prácticas

Preguntas frecuentes

Apéndice: Script de ejemplo y descripción de parámetros para MongoDB

Configurar una tarea de sincronización por lotes mediante el editor de código

Si desea configurar una tarea de sincronización por lotes mediante el editor de código, debe definir los parámetros correspondientes en el script según los requisitos unificados de formato. Para obtener más información, consulte Script mode configuration. A continuación se describen los parámetros que debe configurar para los orígenes de datos cuando utilice el editor de código.

Script de ejemplo de Reader

El siguiente script es un ejemplo de un trabajo configurado para extraer datos de MongoDB hacia un entorno local. Para obtener más información sobre los parámetros, consulte las descripciones posteriores.

Importante
  • Elimine los comentarios antes de ejecutar el código.

  • No es posible extraer elementos específicos de un array.

{
    "type":"job",
    "version":"2.0",// Version number.
    "steps":[
        {
            "category": "reader",
            "name": "Reader",
            "parameter": {
                "datasource": "datasourceName", // Data source name.
                "collectionName": "tag_data", // Collection name.
                "query": "", // Data filtering query.
                "column": [
                    {
                        "name": "unique_id", // Field name.
                        "type": "string" // Field type.
                    },
                    {
                        "name": "sid",
                        "type": "string"
                    },
                    {
                        "name": "user_id",
                        "type": "string"
                    },
                    {
                        "name": "auction_id",
                        "type": "string"
                    },
                    {
                        "name": "content_type",
                        "type": "string"
                    },
                    {
                        "name": "pool_type",
                        "type": "string"
                    },
                    {
                        "name": "frontcat_id",
                        "type": "array",
                        "splitter": ""
                    },
                    {
                        "name": "categoryid",
                        "type": "array",
                        "splitter": ""
                    },
                    {
                        "name": "gmt_create",
                        "type": "string"
                    },
                    {
                        "name": "taglist",
                        "type": "array",
                        "splitter": " "
                    },
                    {
                        "name": "property",
                        "type": "string"
                    },
                    {
                        "name": "scorea",
                        "type": "int"
                    },
                    {
                        "name": "scoreb",
                        "type": "int"
                    },
                    {
                        "name": "scorec",
                        "type": "int"
                    },
                    {
                        "name": "a.b",
                        "type": "document.int"
                    },
                    {
                        "name": "a.b.c",
                        "type": "document.array",
                        "splitter": " "
                    }
                ]
            },
            "stepType": "mongodb"
        },
        { 
            "stepType":"stream",
            "parameter":{},
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "common": { 
            "column": { 
                "timeZone": "GMT+0" // Time zone.
            } 
        },
        "errorLimit":{
            "record":"0"// Number of error records.
        },
        "speed":{
            "throttle":true,// Specifies whether to enable throttling. If you set this parameter to false, throttling is disabled and the mbps parameter does not take effect. If you set this parameter to true, throttling is enabled.
            "concurrent":1, // Number of concurrent jobs.
            "mbps":"12"// Throttling rate. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parámetro

Descripción

datasource

Nombre del origen de datos. En el editor de código, el valor de este parámetro debe coincidir con el nombre del origen de datos agregado.

collectionName

Nombre de la colección de MongoDB.

hint

El parámetro hint obliga al optimizador de consultas a usar un índice específico, lo cual puede mejorar el rendimiento. Para obtener más información, consulte parámetro hint. Ejemplo:

{
"collectionName":"test_collection",
"hint":"{age:1}"
}

column

Arreglo que especifica los campos del documento que se leerán desde MongoDB.

  • name: Nombre de la column.

  • Los tipos admitidos para el parámetro type incluyen los siguientes:

    • string: Cadena de texto.

    • long: Número entero.

    • double: Número de punto flotante.

    • date: Fecha.

    • bool: Valor booleano.

    • bytes: Secuencia binaria.

    • arrays: Se lee como una cadena JSON, por ejemplo, ["a","b","c"].

    • array: Se lee como una cadena con elementos separados por splitter, por ejemplo, a,b,c. Se recomienda usar el formato arrays.

    • combine: Al usar el plugin MongoDB Reader para leer datos, puede combinar varios campos de un documento de MongoDB en una sola cadena JSON.

  • splitter: MongoDB admite el tipo array, pero el framework Data Integration no. Por lo tanto, el arreglo leído desde MongoDB debe combinarse en una cadena mediante este separador.

batchSize

Número de registros que se recuperan en cada lote. Este parámetro es opcional. Valor predeterminado: 1000.

cursorTimeoutInMs

Tiempo de espera del cursor. Este parámetro es opcional. Valor predeterminado: 1000 60 10 = 600000. Si cursorTimeoutInMs se establece en un valor negativo, el cursor nunca expira.

Nota
  • No se recomienda configurar el cursor para que nunca expire. Si el programa cliente se cierra de forma inesperada, el cursor permanecerá en el servidor de MongoDB hasta que se reinicie el servicio.

  • Si ocurre un tiempo de espera del cursor, puede realizar las siguientes acciones:

    • Reducir el número de registros recuperados por lote mediante el parámetro batchSize.

    • Aumentar el tiempo de espera del cursor mediante el parámetro cursorTimeoutInMs.

query

Utilice este parámetro para filtrar los datos devueltos por MongoDB. Solo se admiten los formatos de hora especificados; el formato de marca de tiempo UNIX no se admite de forma directa.

Nota
  • El parámetro query no admite sintaxis de JavaScript.

  • No se admite la lectura de datos de columnas específicas.

A continuación se muestran ejemplos comunes del parámetro query:

  • Consultar datos cuyo estado sea normal.

    {
      ...
      "query":"{ status: "normal"}"
      ...
    }
  • status: "normal"

    {
      ...
      "query":"{ status: { $in: [ "normal", "forbidden" ] }}"
      ...
    }
  • Sintaxis AND: Consultar datos con estado normal y edad menor a 30.

    {
      ...
      "query":"{ status: "normal", age: { $lt: 30 }}"
      ...
    }
  • Sintaxis de fecha: Consultar datos cuya hora de creación sea igual o posterior a 2022-12-01 00:00:00.000. +0800 indica la zona horaria UTC+8.

    {
      ...
      "query":"{ createTime:{$gte:ISODate('2022-12-01T00:00:00.000+0800')}}"
      ...
    }
  • Sintaxis de fecha con un marcador de posición de parámetro de programación: Consultar datos cuya hora de creación sea igual o posterior a un momento específico.

    {
      ...
      "query":"{ createTime:{$gte:ISODate('$[yyyy-mm-dd]T00:00:00.000+0800')}}"
      ...
    }
    Nota

    Para obtener más información sobre los parámetros de programación, consulte Scenarios: Typical application scenarios of scheduling parameters in Data Integration. Para saber cómo implementar la sincronización incremental en tareas por lotes, consulte Use scheduling parameters in Data Integration.

  • Sincronización incremental para campos que no son de tiempo.

    Puede usar un nodo de asignación para procesar un campo y convertirlo al tipo de datos deseado, y luego pasarlo a Data Integration para la sincronización. Por ejemplo, si el campo incremental en MongoDB es una marca de tiempo UNIX, utilice un nodo de asignación para convertir un campo de tipo fecha en una marca de tiempo UNIX mediante una función del motor. Después, pase dicha marca de tiempo a la tarea de sincronización por lotes. Para obtener más información sobre cómo usar un nodo de asignación, consulte Assignment node.

Nota

Para obtener más información sobre la sintaxis de consulta de MongoDB, consulte la documentación oficial de MongoDB.

splitFactor

Si existe una desviación de datos significativa, considere aumentar splitFactor para lograr una fragmentación más detallada sin incrementar la concurrencia.

Script de ejemplo de Writer

El siguiente script es un ejemplo de un trabajo de sincronización de datos configurado para escribir datos en MongoDB. Para obtener más información sobre los parámetros, consulte las descripciones posteriores.

{
    "type": "job",
    "version": "2.0",// Version number.
    "steps": [
        {
            "stepType": "stream",
            "parameter": {},
            "name": "Reader",
            "category": "reader"
        },
        {
            "stepType": "mongodb",// Plugin name.
            "parameter": {
                "datasource": "",// Data source name.
                "column": [
                    {
                        "name": "_id",// Column name.
                        "type": "ObjectId"// Data type. If replaceKey is _id, you must set type to ObjectId. If you set type to string, the replacement fails.
                    },
                    {
                        "name": "age",
                        "type": "int"
                    },
                    {
                        "name": "id",
                        "type": "long"
                    },
                    {
                        "name": "wealth",
                        "type": "double"
                    },
                    {
                        "name": "hobby",
                        "type": "array",
                        "splitter": " "
                    },
                    {
                        "name": "valid",
                        "type": "boolean"
                    },
                    {
                        "name": "date_of_join",
                        "format": "yyyy-MM-dd HH:mm:ss",
                        "type": "date"
                    }
                ],
                "writeMode": {// Write mode.
                    "isReplace": "true",
                    "replaceKey": "_id"
                },
                "collectionName": "datax_test"// Collection name.
            },
            "name": "Writer",
            "category": "writer"
        }
    ],
    "setting": {
        "errorLimit": {// Number of error records.
            "record": "0"
        },
        "speed": {
            "throttle": true,// Specifies whether to enable throttling. If you set this parameter to false, throttling is disabled and the mbps parameter does not take effect. If you set this parameter to true, throttling is enabled.
            "concurrent": 1,// Number of concurrent jobs.
            "mbps": "1"// Throttling rate. 1 mbps = 1 MB/s.
        },
       "jvmOption": "-Xms1024m -Xmx1024m"
    },
    "order": {
        "hops": [
            {
                "from": "Reader",
                "to": "Writer"
            }
        ]
    }
}

Parámetros del script de Writer

Parámetro

Descripción

Obligatorio

Valor predeterminado

datasource

Nombre del origen de datos. En el editor de código, el valor de este parámetro debe coincidir con el nombre del origen de datos agregado.

Sí

Ninguna

collectionName

Nombre de la colección de MongoDB.

Sí

Ninguna

column

Arreglo que especifica los campos del documento que se escribirán en MongoDB.

  • name: nombre de la columna.

  • type: tipo de la columna.

    • int: entero de 32 bits.

    • string: cadena de texto.

    • array: el parámetro splitter es obligatorio y sirve para separar la cadena de origen. Por ejemplo:

      Si los datos de origen son a,b,c y splitter se establece como una coma (,), los datos se dividen en el arreglo ["a","b","c"] y se escriben en MongoDB.

      {"type":"array","name":"col_split_array","splitter":",","itemtype":"string"}
      Nota

      Para el tipo array, el parámetro itemtype admite los siguientes tipos de enumeración: double, int, long, bool, bytes y string.

    • json: cadena JSON.

    • long: entero largo.

    • date: fecha.

    • double: número de punto flotante.

    Nota

    MongoDB Writer también permite escribir tipos anidados. Agregue el prefijo document. al parámetro type para indicar un tipo anidado. Además, configure un nombre en cascada para el parámetro name. Ejemplo:

    {"type":"document.string","name":"col_nest.col_string"}
        {"type":"document.array","name":"col_nest.col_split_array","splitter":",","itemtype":"string"}
  • splitter: separador especial. Utilice este parámetro únicamente cuando necesite dividir una cadena en un arreglo de caracteres. La cadena se divide en un arreglo mediante el separador especificado y se almacena en MongoDB.

Sí

Ninguna

writeMode

Indica si se sobrescriben los datos durante la transmisión. Incluye isReplace y replaceKey:

  • isReplace: si se establece en true, se sobrescribe el registro que tenga el mismo replaceKey. Si se establece en false, no se sobrescribe ningún dato.

  • replaceKey: define la clave primaria de negocio de cada registro, la cual se utiliza para la sobrescritura. No se admiten varias claves para replaceKey. Por lo general, corresponde a la clave primaria en MongoDB.

Nota

Si isReplace se establece en true y se configura un campo distinto de _id como replaceKey, podría producirse un error similar al siguiente durante la ejecución:

After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2"

Esto ocurre porque los datos por escribir contienen registros cuyo _id no coincide con replaceKey. Para obtener más información, consulte las preguntas frecuentes: Error: After applying the update, the (immutable) field '_id' was found to have been altered to _id: "2".

No

Ninguna

preSql

Operación previa que se ejecuta antes de escribir los datos en MongoDB, como limpiar datos históricos. Si preSql está vacío, no se configura ninguna operación previa. Cuando configure preSql, compruebe que su valor cumpla con la sintaxis JSON.

No

Ninguna

Al ejecutar un trabajo de Data Integration, primero se ejecuta preSql configurado. La fase de escritura de datos comienza únicamente después de que finaliza la ejecución de preSql. El parámetro preSql no afecta el contenido de los datos escritos, mientras que preSql garantiza que la ejecución de Data Integration sea idempotente. Por ejemplo, puede usar preSql para limpiar los datos históricos antes de cada ejecución de la tarea, según sus reglas de negocio. De este modo, si una tarea falla, basta con volver a ejecutar el trabajo de Data Integration.

A continuación se describen los requisitos de formato para preSql:

  • Configure el campo type para especificar el tipo de operación previa. Los valores compatibles son drop y remove. Ejemplo: "preSql":{"type":"remove"}.

    • drop: elimina la colección y los datos que contiene. La colección por eliminar se especifica mediante el parámetro collectionName.

    • remove: elimina los datos según una condición.

    • json: utilice un objeto JSON para especificar las condiciones de eliminación de datos. Ejemplo: "preSql":{"type":"remove", "json":"{'operationTime':{'$gte':ISODate('${last_day}T00:00:00.424+0800')}}"}. En este ejemplo, ${last_day} es un parámetro de programación de DataWorks con el formato $[yyyy-mm-dd]. También puede usar otros operadores condicionales compatibles con MongoDB (como $gt, $lt, $gte y $lte), operadores lógicos (como and y or) o funciones (como max, min, sum, avg e ISODate) según lo requiera.

      Data Integration ejecuta la eliminación de datos mediante la siguiente API estándar de MongoDB:

      query=(BasicDBObject) com.mongodb.util.JSON.parse(json);        
      col.deleteMany(query);
      Nota

      Se recomienda utilizar la configuración JSON para eliminar datos según condiciones.

    • item: dentro de un elemento item, configure el nombre de la columna (name), la condición (condition) y el valor de la columna (value) para filtrar los datos. Ejemplo: "preSql":{"type":"remove","item":[{"name":"pv","value":"100","condition":"$gt"},{"name":"pid","value":"10"}]}.

      Data Integration construye una condición de consulta a partir de los elementos item configurados y luego ejecuta la eliminación mediante una API estándar de MongoDB. Por ejemplo: col.deleteMany(query);.

  • Si no se reconoce preSql, no se ejecuta ninguna operación de eliminación previa.