【发布时间】:2016-11-07 18:39:46
【问题描述】:
我想返回数组中出现在数组中特定位置之前的所有元素,例如,请参见下面的示例。
var arr = [59, 34, 6, 9, 45, 67, 89, 56, 34, 26, 56, 45] 现在位置 = 5,这意味着从最后一个位置开始的第 5 个位置,即 56 我想获得数组 [56, 89, 67, 45, 9, 6, 34, 59]
Mongoose 架构
var user_coupons_schema = new Schema({
mobile_no: {type: String, unique: true},
coupons: [{type: String}]
});
猫鼬查询
usercoupons.findOne({mobile_no: mobile_no}, {'_id':0, coupons: { "$slice": [-skip, limit]}}, function(err, docs) {
更新
使用聚合我的代码在下面给出,但有人可以告诉我为什么低于值在 $slice 中出现 NaN
"arr_size" - 跳过 -> NaN
usercoupons.aggregate(
{ $match : {mobile_no: mobile_no} },
{ $project: {arr_size: {$size: "$coupons"}} },
{ $project: {_id:0, coupons: { "$slice": [0, "arr_size" - skip]}} },
function(err, docs) {
if (err) {
console.log('Hii1');
} else {
if (docs) {
console.log('Hii2');
} else {
console.log('Hii3');
}
}
}
);
【问题讨论】:
-
能否提供有关架构的更多信息并展示您的尝试?
-
我想使用 slice,但是在 slice[skip, limit] 中,有两个参数可以跳过我可以使用 -position 但我不知道应该使用什么限制??
标签: arrays node.js mongodb mongoose