聚合操作的match阶段,操作符nin后的数组达到100个后开始报错(数组由云数据库_id组成)
相关代码如下:
getCustomerInfoWhenReachBottom: function () {
let that = this
const _ = db.command
db.collection('customerInfo')
.aggregate()
.geoNear({
distanceField: 'distance', // 输出的每个记录中 distance 即是与给定点的距离
spherical: true,
near: db.Geo.Point(Number(that.data.longitude), Number(that.data.latitude)),
distanceMultiplier: 1 / 1000, //将米换算为千米
key: 'location', // 若只有 location 一个地理位置索引的字段,则不需填
includeLocs: 'location', // 若只有 location 一个是地理位置,则不需填
})
.match({
createTime: _.lt(that.data.refreshTimestamp),
distance:_.gte(that.data.currentMaxDistance),
_id: _.nin(that.data.customerInfoIdOnScreen)
})
.limit(10)
.end()
.then((data) => {
that.data.currentMaxDistance=data.list[data.list.length-1].distance
that.setData({
arrayCustomerInfo: that.data.arrayCustomerInfo.concat(data.list)
})
for (let index = 0; index <data.list.length; index++) {
that.data.customerInfoIdOnScreen.push(data.list[index]._id)
}
})
},
其中that.data.customerInfoIdOnScreen是个数组,该数组由云数据库中自动生成的_id组成。
在数组that.data.customerInfoIdOnScreen的长度达到100之前,运行正常,长度达到100后,聚合操作失败。
请问如何解决?