update - ¿Cómo verificar si un campo de matriz contiene un valor único u otra matriz en MongoDB?
mongodb documentos relacionados (2)
Mi experiencia es que para (2) la siguiente solución es mucho más rápida que la que tiene "$ all":
db.blogpost.find({ $and: [ {tags: ''tag1''} ,{tags: ''tag2''} ] });
pero para ser honesto, no sé por qué. Me interesaría, si alguien sabe.
Estoy usando mongodb ahora.
Tengo una colección de blogposts, y blogpost tiene una etiqueta archivada que es una matriz, por ejemplo
blogpost1.tags = [''tag1'', ''tag2'', ''tag3'', ''tag4'', ''tag5'']
blogpost2.tags = [''tag2'', ''tag3'']
blogpost3.tags = [''tag2'', ''tag3'', ''tag4'', ''tag5'']
blogpost4.tags = [''tag1'', ''tag4'', ''tag5'']
¿Cómo puedo hacer estas búsquedas?
- contiene ''tag1''
- contiene [''tag1'', ''tag2''],
- contiene cualquiera de [''tag3'', ''tag4'']
Probar esto:
db.blogpost.find({ ''tags'' : ''tag1''}); //1
db.blogpost.find({ ''tags'' : { $all : [ ''tag1'', ''tag2'' ] }}); //2
db.blogpost.find({ ''tags'' : { $in : [ ''tag3'', ''tag4'' ] }}); //3