nasıl

2016-03-21 24 views
-1

Benim Şeması ben proje kimliği belirli bir kimliği eşittir ve sonuç carpetArea ve tip bazında özeldir tüm daireler getirmek istiyornasıl

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 } 
}); 

olan alanların kombinasyonları temelinde benzersiz veri ayıklamak.

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); 
    }); 

İstenilen sonucu almak için lütfen sorgumuzu düzenleyebilir misiniz? carpetArea ve type temel üzerinde benzersiz almak için

+1

Ne denedi vardır aggregation geçer? Tek sorgu girişimi, gereksinimleriniz gibi bir şey olmayan çok basit bir işlemdir. Lütfen gerçek bir girişim gösteriniz. Kod yazımı hizmeti yok. –

+0

Bunun hakkında hiçbir fikrim yok, bu yüzden bu sorguları yapıştırdım –

+0

Aramak için çok basit bir şey. Ne sorduğun hakkında akla gelen imdatlar anahtar kelimeler, akla gelebilecek her aramayla alakalı sonuçlar döndürüyor. Burada yayınlayamaz ve insanlardan sizin için kod yazmasını istemezsiniz. Ne yazık ki sorunuz, çıktı olarak ne beklediğinizi tanımlarken çok belirsiz. Aslına bakılırsa, alınan notları garantilemek çok zor. –

cevap

0

bir yolu, örnek kodlar

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 
       }} 
     ]);