«Slicing» - это то, где вы назначаете объект производного класса экземпляру базового класса, тем самым теряя часть информации - часть его «нарезана».
Например,
class A {
int foo;
};
class B : public A {
int bar;
};
Итак, объект типа B
имеет два элемента данных: foo
и bar
.
Тогда, если вы должны были написать это:
B b;
A a = b;
Затем информация в b
о члене bar
теряется в a
.
MongoDB не позволяет вам вычислять поля с обычными запросами, однако вы можете сделать это с помощью структуры агрегации. Вы бы сделали это следующим образом:
myTestModel.aggregate(
{ $match: {} }, // your find query
{ $project: {
op1: 1, // original fields
op2: 1,
total: { $add: ['$op1', '$op2' ] } // calculated field
} },
{ $sort: { total: 1 } },
// And then the normal Mongoose stuff:
function (err, res) {
}
);
См. Также: http://mongoosejs.com/docs/api.html#model_Model.aggregate