varios relacionar modificar insertar hacer ejemplos documentos documento consultas comandos colecciones busquedas anidadas mongodb

relacionar - mongodb modificar documento



Cómo encontrar documentos mongo con un mismo campo. (1)

Tengo una colección de Mongo, y necesito encontrar documentos en esta colección, en los cuales el nombre y la dirección de los campos son iguales.

He buscado mucho, solo pude encontrar la condición de consulta de MongoDb al comparar 2 campos y MongoDB: índices compuestos únicos y dispersos con valores dispersos , pero en estas preguntas están buscando documentos en qué campo a = campo b, pero necesito encuentra document1.a == document2.a


Puede encontrar duplicados utilizando el marco de agregación y $group .

Ejemplo de configuración de datos:

// Batch insert some test data db.mycollection.insert([ {a:1, b:2, c:3}, {a:1, b:2, c:4}, {a:0, b:2, c:3}, {a:3, b:2, c:4} ])

Consulta de agregación:

db.mycollection.aggregate( { $group: { // Group by fields to match on (a,b) _id: { a: "$a", b: "$b" }, // Count number of matching docs for the group count: { $sum: 1 }, // Save the _id for matching docs docs: { $push: "$_id" } }}, // Limit results to duplicates (more than 1 match) { $match: { count: { $gt : 1 } }} )

Ejemplo de salida:

{ "result" : [ { "_id" : { "a" : 1, "b" : 2 }, "count" : 2, "docs" : [ ObjectId("5162b2e7d650a687b2154232"), ObjectId("5162b2e7d650a687b2154233") ] } ], "ok" : 1 }