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

MongoDB. Legen Sie jedem Dokument in der Sammlung eine eindeutige Nummer fest

Experimentell (abhängig von der Größe Ihrer Sammlung) können Sie versuchen, $unwind was einen includeArrayIndex akzeptiert Parameter:

db.collection.aggregate([
    {
        $group: {
            _id: null,
            docs: { $push: "$$ROOT" }
        }
    },
    {
        $unwind: {
            path: "$docs",
            includeArrayIndex: "index"
        }
    },
    {
        $replaceRoot: {
            newRoot: {
                $mergeObjects: [ "$docs", { place: "$index" } ]
            }
        }
    }
])

Mongo-Spielplatz

Sie können auch $out in Betracht ziehen bestehende Sammlung durch das obige Aggregationsergebnis zu ersetzen