2016-03-21 3 views
-1

Mein Schema istWie eindeutige Daten auf Basis von Kombinationen von Feldern

var FlatSchema = new Schema({ 
    tower: { type: Schema.ObjectId, ref: "Tower" }, 
    project: { type: Schema.ObjectId, ref: "Project" }, 
    status: String, 
    floor: Number, 
    size: String, 
    type: String, 
    flat_number: String, 
    price: Number, 
    price_per_unit: Number, 
    carpetArea: Number, 
    directionFacing: String, 
    livingRoomArea: Number, 
    kitchenArea: Number, 
    balconies: Number, 
    bathRooms: Number, 
    furnishingState: String, 
    flooringType: String, 
    FloorPlans_2d: String, 
    FloorPlans_3d: String, 
    createdAt: { type: Date, 'default': Date.now }, 
    isDeleted: { type: Boolean, 'default': false } 
}); 

extrahieren ich alle Wohnungen holen will, wo Projekt-ID ist gleich zu einer bestimmten ID und Ergebnisse sind einzigartig auf der Basis von carpetArea und Typ.

Flat.find({ project: req.params.project, isDeleted: false}, function(err, flats) { 
     if (err) { return res.status(500).send(err); } 
     if (!flats) { return res.json(401); } 
     res.status(200).json(flats); 
    }); 

Sie bitte bearbeiten meine Abfrage gewünschte Ergebnis zu bekommen?

+1

Was haben Sie versucht? Der einzige Abfrageversuch ist ein sehr einfacher, der Ihren Anforderungen nicht entspricht. Bitte zeigen Sie einen echten Versuch. Kein Code-Schreibdienst. –

+0

Ich habe keine Ahnung davon, deshalb habe ich diese Frage eingefügt –

+0

Es ist eine sehr einfache Sache zu suchen. Die impliziten Schlüsselwörter, die Ihnen in den Sinn kommen, was Sie fragen, geben bei jeder Suche relevante Ergebnisse zurück. Du kannst nicht einfach hier posten und Leute bitten, Code für dich zu schreiben. Leider ist Ihre Frage auch sehr vage, wenn Sie beschreiben, was Sie als Ausgabe erwarten. Zuviel, um die empfangenen Upvotes zu garantieren. –

Antwort

0

Eine Möglichkeit, die einzigartig auf grundlegendste carpetArea und type zu erhalten, ist durch aggregation, Beispielcodes sind

Flat.aggregate([ 
     {$match: { project: req.params.project, isDeleted: false}}, 
     {$group: {_id: {carpetArea: '$carpetArea', type: '$type'}, 
       status: {$first: '$status'}, 
       // other field are here same type above 
       }} 
     ]); 
Verwandte Themen