/ / Mongoose Db: Как мога да използвам параметризиран метод в заявка за Mongoose? - Монгод, Монгоуз

Mongoose Db: Как мога да използвам параметризиран метод в заявка за Mongoose? - Монгод, Монгоуз

var mongoose = require("mongoose"),
Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;

var Group = new Schema({
name: { type: String, required: true },
members: [{ type: ObjectId, ref: "User" }],
leader: { type: ObjectId, ref: "User" },
// more fields to filter by
});


Group.method("role", function (user) {
if (this.leader === user) return "Leader";
else if (this.members.indexOf(user) >= 0) return "Member";
else return "Non-Member";
});

Аз съм монгоуз нов и първата ми истинска заявка е сложна. Трябва да избера набор от групи за име на дисплейната група и ролята на текущия потребител (user_id се съхранява в променливата на сесията).

Мога ли да използвам метода "роля" в заявката за избор на Mongoose?

Може би трябва да използвам персонализиран поток от възли и да приложим метода за роля там?

Забележете, че моите условия (this.leader === потребител) или (this.members.indexOf (user)> = 0) са правилни или ефективни. Трябва да избягвам зареждането на потребителския обект за всеки документ на групата.

Необходим е код.

Благодаря за вашата помощ!

Отговори:

0 за отговор № 1

това, което искате да използвате, е рамката за агрегиране

http://docs.mongodb.org/manual/applications/aggregation/

Може да се наложи да потапяте в родния драйвер за тази заявка.