mongodb error code 286是什么意思
时间: 2023-09-21 15:08:49 浏览: 247
解决MongoDB 排序超过内存限制的问题
MongoDB错误代码286表示在进行聚合操作时,无法在匹配阶段中使用$geoNear运符。$geoNear运算符是用于执行地理空间查询的运算符,它需要在聚合管道的开头作为第一个阶段使用。
如果出现错误代码286,可能是因为在聚合管道中的匹配阶段中使用了$geoNear运算符,而不是作为第一个阶段。要解决这个错误,将$geoNear运算符移动到聚合管道的开头作为第一个阶段即可。
例如,在以下聚合操作中,如果将$geoNear运算符放在$match之后,就会出现错误代码286:
```javascript
db.collection.aggregate([
{
$match: {
location: {
$near: {
$geometry: {
type: "Point",
coordinates: [longitude, latitude]
},
$maxDistance: distance
}
}
}
},
{
$geoNear: {
near: {
type: "Point",
coordinates: [longitude, latitude]
},
distanceField: "distance",
maxDistance: distance
}
}
])
```
正确的写法是将$geoNear运算符移动到聚合管道的开头:
```javascript
db.collection.aggregate([
{
$geoNear: {
near: {
type: "Point",
coordinates: [longitude, latitude]
},
distanceField: "distance",
maxDistance: distance
}
},
{
$match: {
location: {
$near: {
$geometry: {
type: "Point",
coordinates: [longitude, latitude]
},
$maxDistance: distance
}
}
}
}
])
```
这样就可以避免错误代码286的出现。
阅读全文