nodejs – ¿Hay alguna forma de guardar en mongoose varios tipos de datos para un campo de un documento?

gracias por entrar a la pregunta.

Estoy tratando de crear una base de datos en mongodb a traves de mongoose, en la cual todos los elementos están relacionados (así podré utilizar posteriormente una vez guardada la información en la bbdd el comando populate().

El problema es que los documentos se añaden de forma dinámica, por lo tanto a la hora de crear un documento puede ser que ciertos de los campos que necesito popular (es decir, que en el Schema se guardan como { ref: “XXX”, type: Schema.Types.ObjectId }) no estén disponibles aún para poder añadir el ObjectId correspondiente.

Supongamos que tengo la siguiente situación:

Schema 1:

{
    id: String,
    version: Number,
    title: String,
    description: String,   
    scopes: ({
        ref: "scopes",
        type: Schema.Types.ObjectId
    })
}

Schema 2 (scopes):

{
    id: String,
    title: String,
    description: Description,
    env: String,
}

Pongamos un ejemplo de documentos con este formato:

Documento Schema 1:

{
   id: "Ejemplo documento",
   version: 2,
   title: "Ejemplo titulo documento",
   description: "Ejemplo descripcion documento",
   scopes: ("scope1", "scope2", "scope3")
}

Documento Schema2 – scopes

{
    id: "scope 1",
    title: "titulo de scope 1",
    description: "descripcion de scope 1",
    env: "dev",
}

Si usted quiere insertar el Documento Schema 1 primero realizaría una búsqueda en la BD para los documentos en la BD de Documento Schema 2 – scopes, identificaría aquellos que aparecen en el Documento Schema 1 y los sustituiría por los scopes de este documento.

Es decir, acabaría teniendo una pinta así antes de ser insertado:

{
   _id: ObjectId('skldjnaskljdnvakdsj')
   id: "Ejemplo documento",
   version: 2,
   title: "Ejemplo titulo documento",
   description: "Ejemplo descripcion documento",
   scopes: (ObjectId(ejemploid), ObjectId(ejemploid2), ObjectId(ejemploid3))
}

El problema al que me enfrento es que no existen todavía esos documentos de scopes (se insertan en distintas horas), por lo que me gustaría poder guardar el documento sin el ObjectId de los scopes para poder editarlo más tarde y añadirlo una vez sea insertado el documento.

Por lo tanto, ¿se puede guardar en mongoose un Schema que tenga un tipo de dato u otro?

Concretamente, ¿se puede indicar en el Schema que sea ObjectId o String?

Si has llegado hasta aquí eres un héroe, siento la chapa.

Cualquier ayuda es bienvenida. Si necesitáis algún tipo de especificación más me comentáis.