Estoy usando node.js y Mongo.db (recién uso Mongo). Tengo un documento como este:
Tag : { name: string, videoIDs: array }La idea es que el servidor reciba un JSON como
JSON: { name: "sport", videoId: "34f54e34c" } con este JSON, tiene que encontrar la etiqueta con el mismo nombre y verificar si en la matriz tiene el videoId , si no, insertarlo en la matriz.
¿Cómo puedo verificar la matriz y agregar datos?
Puede usar el operador $addToSet para verificar que existe antes de agregar el elemento a la matriz.
db.tags.update( {name: 'sport'}, {$addToSet: { videoIDs: "34f54e34c" } } ); En este ejemplo de declaración de actualización, mongoDB encontrará el documento TAG que coincide con name == sport y luego verificará si la matriz de videoIDs contiene 34f54e34c . Si no, agréguelo a la matriz.
Uso detallado de $addToSet , lea aquí .
No lo probé, pero puedes probar algo como:
yourDb.find({ name: "sport", videoIDs: { $in: ["34f54e34c"] } }) .update({$addToSet: { videoIDs: "34f54e34c" }});Si necesita cómo: MongoDb en la implementación de nodeJs, puede comenzar con:
El operador $addToSet verifica la matriz vacía o existente en el documento.
db.col_name.update({name :"name_for_match"},{$addToSet : { videoId : "video_id_value"}})