我需要后端的帮助。我正在使用邮递员,这是我后端的模型:
name: {
type: String,
required: [true, 'Department Name is Required']
},
description: {
type: String,
required: [true, 'Description is Required']
},
agents: [
{
agentId: {
type: String,
required: [true, 'Agent ID is Required']
},
createdOn: {
type: String,
default: new Date()
}
}
]
我试图在代理数组中推送文档,但我遇到了一些错误。
路线和控制器如下:
Routes:
router.post('/enroll', (req, res) => {
UserController.enroll(req.body).then(result => res.send(result))
});
Controllers:
module.exports.enroll = (params) => {
return Department.findById({departmentId: params.departmentId}).then(department => {
department.agents.push({userId: params.userId})
return department.save().then((department, error) => {
return (err) ? false : true
})
})
}
这就是我得到的错误:(节点:9916)未经处理的PromisejectionWarning:CastError:CastToObjectId值“{departmentId:'60e27549c36af1272812c4e3'}”(类型对象)在模型“Department”的路径“\u id”处失败
目标是寻找部门ID,并将推送我已经获得的代理ID。
谢谢图萨!你帮了大忙。
我能够使用您提供的链接找到答案,并且意识到我在代码本身上犯了一些错误。哈哈哈
I've modified routes to:
router.post('/enroll/:id', (req, res) => {
const params = {
departmentId: req.params.id,
agentId: req.body.agentId
}
UserController.enroll(params).then(department => res.send(department))
});
Then, some of the lines in my controllers too:
module.exports.enroll = (params) => {
return Department.findById(params.departmentId).then(department => {
department.agents.push({agentId: params.agentId})
return department.save().then((department, error) => {
return (error) ? false : true
})
})
}
它现在正在工作。
尝试
改变
退货部。findById({departmentId:params.departmentId})
到
返回Department.findById(params.departmentId)
findById
仅接受id而不接受对象
本文向大家介绍如何在MongoDB中推送数组?,包括了如何在MongoDB中推送数组?的使用技巧和注意事项,需要的朋友参考一下 要推送数组,请在MongoDB中使用$push。首先让我们创建一个包含文档的集合- 在方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是推送数组的查询- 这将产生以下输出-
我有一个像这样的mongoDB结果。 我需要排序降序。 下面是返回上述结果的查询。我在各个阶段都尝试过使用sort,但没有成功。 需要插入排序操作的地方,按计数降序排序。
b)“Units”字段包含带有“period”字段的子文档(日期对象数组),其中给定的日期位于数组中的第一和第二元素之间。 数据结构如下所示: 我尝试使用.find()和.aggregate()的各种组合,例如在periol数组上使用$project和$filter,在unit._id上使用$elemmatch之后使用$elemmatch,但是没有用--我得到了诸如“不能在数组上使用$filter
我试图插入一个json字符串,它包含一个文档数组,但得到以下异常。 MongoDB服务器版本: Mongo-Java驱动程序版本: 我知道方法只用于插入一个文档,但这里是一个数组文档。我不确定在这里如何使用方法。 请引导。 要插入的JSON字符串: 异常日志: main.java GenericUtils.java pom.xml
现在我想做的是将一个GeoStamps列表推送到Mongo中的GeoStamp数组,在那里我首先过滤跟踪器的ObjectId或它的iCAN。然后在文档中发现我需要按日过滤,所以我不会将GeoStamp列表添加到分布在多个日期的多个GeoStamp数组中。 我想可以用下面的方法来做: 我的查询(是的,我知道retrievedFields是不推荐的,我不想使用它,但这是我最接近工作的解决方案): 写入
我是新来的mongo。我有以下收藏。 文件: 请求: 文档集合中的typeId是文档类型的id,其中请求中的typeId是也可以为空的外部字段。如何获得以下输出。