我有一个通知集合,里面有这样的文档:
id: 6253ec60facb2ee68475510e;
companyId: 6253asdsad0facb2ee68475510e;
workStatus: true
id: 6253ec60abcb2ee68475510e;
companyId: 6253ec60afva2ee68475510e;
workStatus: true
我想按公司id而不是id搜索文档。当我这样做时:
const notification = await Notification.findById(req.params.companyId);
它正在按id(主id(进行搜索。
我是编程新手。有人能帮我吗?
您正在使用findById
,它会根据ID查找文档您应该使用findOne()
const notification = await Notification.findOne({companyId: req.params.companyId});
findById((函数用于通过_id字段查找单个文档。您可以使用find((或findOne((并传递companyId字段。
find((和findOne((的区别在于,如果查询匹配,findOne(((将返回第一个文档,否则返回null。find((方法不返回null,而是返回一个游标。
例如,写这样的东西:
await Notification.find({ companyId: req.params.companyId }).exec();