MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Finden Sie zuerst Dokumente für jeden einzelnen Wert für ein Feld

Sie müssen eine Aggregatoperation ausführen, die alle Dokumente nach field3 gruppiert und verwenden Sie den $first Akkumulator mit dem $$ROOT Systemvariable, um das erste Dokument zu bringen, etwa so:

db.myCollection.aggregate([
    {
        "$group": {
            "_id": "$field3",
            "doc": { "$first": "$$ROOT" }
        }
    }
])

oder für eine exakte Ausgabe:

db.myCollection.aggregate([
    {
        "$group": {
            "_id": "$field3",
            "field1": { "$first": "$field1" },
            "field2": { "$first": "$field2" }
        }
    },
    {
        "$project": {
            "_id": 0,
            "field3": "$_id",
            "field2": 1,
            "field1": 1
        }
    }
])