sql >> Databasteknik >  >> NoSQL >> MongoDB

hitta det första dokumentet för varje distinkt värde för ett fält

Du måste köra en aggregerad operation som grupperar alla dokument efter fält3 och använd $first ackumulator med $$ROOT systemvariabel för att ta fram det första dokumentet, ungefär följande:

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

eller för en exakt utdata:

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


  1. mongokopia från en samling till en annan (på samma db)

  2. Hantera timeouts med Node.js och mongodb

  3. Meteor:Oväntad mongo exit-kod 100. Startar om. Kan inte starta mongo-servern

  4. För- och nackdelar med att använda MongoDB istället för MS SQL Server