【发布时间】:2018-06-26 01:03:07
【问题描述】:
这是我的猫鼬活动模式。
var Activity = new Schema({
activityName: {
type: String,
required: true
},
activityPlace: {
name: {
type: String,
default: 'Virtual'
},
location: {
type: {
type: String,
default: 'Point'
},
coordinates: {
type: Array,
default: [0, 0]
}
},
},
activityCategory: {
type: String,
required: true
},
createdBy: {
type: Schema.ObjectId,
ref: 'User'
},
usersAttending: [{
type: Schema.ObjectId,
ref: 'User'
}],
});
它有一个字段“usersAttending”。 这是我调用这个 mongo 活动模型的函数。
var getActivityNearbyFeed = function (location, distance, id, page, pagesize, callback) {
var criteria = {
"createdBy": {
$ne: id
},
"activityPlace.location.coordinates": {
$geoWithin: {
$centerSphere: [
location.coordinates,
distance
]
}
},
};
var projection = {};
var option = {
lean: true
}
var query = Models.Activity.find(criteria, projection, option);
query.skip(page * pagesize);
query.limit(pagesize);
//query.sort();
query.exec(function (err, data) {
if (err) {
callback(err);
} else {
callback(null, data);
}
})
};
我想根据数组 usersAttending 的长度对数据进行排序。我正在获取查询对象中的数据,有什么方法可以让我根据 usersAttending 数组的长度在该对象中获取数据。我使用了 sort 函数,但找不到正确的语法。提前致谢。
【问题讨论】:
-
为此使用聚合框架。