- 文章
- 基于后缀算术表达式的代码解析
- 基于AST的算数表达式解析
- Vscode Java 环境配置
- 纯前端实现图片的模板匹配
- 测试用例管理工具Luckyframe安装
- Vscode远程开发,本地翻墙神器
- 记前端手写方法
- Node 2020年新增功能
- yum-404-error
- react16特性:fiber reconciler解密
- cmd终端设置代理
- 前端面试题收集
- git子模块
- 算法-排序
- linux安装python-pyenv环境
- 开发人员良心工具
- 斐波拉契数列js实现
- 数组ArrayFlatten
- Docker安装部署taiga项目
- 极光推送RN集成
- docker-pm2发布node服务
- git-pull获取指定文件
- git获取第一次commit提交记录
- ReactNative项目选型设计
- Docker-Mysql8.0安装及初始化配置
- DDA算法
- ubuntu搭建shadowsocks服务
- React-Native 接入百度统计SDK
- docker-使用yum安装
- 前端入门篇
- CodePush尝试
- Markdown数学公式
- Mongoose踩坑路
- linux系统nvm指定版本安装
- linux安装nginx
- Vscode-Threejs代码智能提示
- linux常用命令
- 说明
Mongoose踩坑路
三月 21, 2018- 错误 1:
Unknown modifier: $pushAll
报以上错误信息一般是因为 model 里面对应的某个字段
xxx
是数组,然后在使用xxx.push
的时候,就会出现这个错误
比如有以下 model:
const xxxSchema = new mongoose.Schema(
{
xxx: [
{
name: String,
kind: String // 字段类型 int boolean string 千万不要写成type了 mmp
}
]
},
{
usePushEach: true,
versionKey: false // 去掉__v键
}
);
xxx
就是一个数组,为了解决 push 问题,需要加上usePushEach: true
这个配置才行
这才能够使用以下的语句进行保存更新
xxxSchema.methods.addField = async function(field) {
this.fields.push({});
await this.save();
};
- 错误 2: 聚合函数使用 aggregate 使用\$group 报错
类似
Error:
Assert: command failed: {
"ok" : 0,
"errmsg" : "The field 'tag' must be an accumulator object",
"code" : 40234,
"codeName" : "Location40234"
} : aggregate failed
造成原因:需要指定_id
来作为分组依据:
db.getCollection("movies").aggregate([
{
$unwind: "$tags"
},
{
$group: {
// tags: "$tags",
_id: "$tags", // 这里必须是_id 而不是tags的标志
count: { $sun: 1 } // 分组求和
}
}
]);