¿MongoDB selecciona dónde en la matriz de _id?

1 minuto de lectura

avatar de usuario
soy yo

es posible en mongo db seleccionar documentos de colección como en SQL:

SELECT * FROM collection WHERE _id IN (1,2,3,4);

o si tengo un _id array debo seleccionar uno por uno y luego recomponer el array/object de resultados?

Puedes probar esto

var ids = ["5883d387971bb840b7399130","5883d389971bb840b7399131","5883d38a971bb840b7399132"];

var oids = [];
ids.forEach(function(item){
oids.push(new ObjectId(item));
});

.find({ _id: {$in : oids}})

  • Gracias. Recuerde definir ObjectID así: var ObjectId = require(‘mongodb’).ObjectID;

    – Andrei Charnyshou

    23 de marzo a las 13:48

la lista es una matriz de ID

En esta lista de códigos está la matriz de ID en la colección de usuarios

var list = ["5883d387971bb840b7399130","5883d389971bb840b7399131","5883d38a971bb840b7399132"]

    .find({ _id: {$in : list}})

  • El código no funciona. Parece que tiene que establecer ID como ObjectId (“5883d387971bb840b7399130”)

    – Playa Pax

    15 de mayo de 2018 a las 9:13

  • ¿Cómo los configuramos en ObjectIds programáticamente? Probé el enfoque sugerido por @klipmode en una de las respuestas, pero eso no funciona.

    – Vikalp jainista

    6 de mayo de 2021 a las 4:36

avatar de usuario
ericgit

si desea buscar por usuario y también por otro campo, como condicionalmente, puede hacerlo fácilmente como debajo con el operador de propagación y ternario usando aggregate y match

  const p_id = paciente_id;  let fetchingReports = esperar Reports.aggregate([
      ...(p_id
        ? [
            {
              $match: {
                createdBy: mongoose.Types.ObjectId(id),
                patient_id: p_id,
              },
            },
          ]
        : [
            {
              $match: {
                createdBy: mongoose.Types.ObjectId(id),
              },
            },
        

  • The code is not working. It seems have to set IDs as ObjectId(“5883d387971bb840b7399130”)

    – Pax Beach

    May 15, 2018 at 9:13

  • How do we do set them to ObjectIds programmatically? I tried the approach suggested by @klipmode in one of the answers, but that does not work.

    – Vikalp Jain

    May 6, 2021 at 4:36

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad