1
我试图用TypeORM和MongoDB来表达,但我遇到了基本问题。TypeORM FindById不适用于MongoDB
我刚刚为一个实体创建了一个基本的CRUD操作的控制器。方法save,findAll和Filter查找工作正常,但我不能让需要mongo id的方法工作。
router.get("/", async(req: Request, res: Response) => {
const investmentRepository = getMongoRepository(Investment);
const investments = await investmentRepository.find();
res.send(investments);
});
router.get("/:id", async(req: Request, res: Response) => {
const investmentRepository = getMongoRepository(Investment);
const investment = await
investmentRepository.findOneById(req.params.id);
if (!investment) {
res.status(404);
res.end();
}
res.send(investment);
});
第二种方法总是返回404 例如,这是一个实体返回上得到所有“投资/”
{
"id": "59dfd8cadcbd9d1720457008",
"name": "Teste LCI",
"startDate": 1466305200,
"numberOfDays": 365,
"type": "LCI_LCA"
}
如果我尝试发送此特定对象调用的请求
投资/ 59dfd8cadcbd9d1720457008
的反应总是404
同样的行为的发生是由于删除方法,抛出一个异常
找不到实体由给定的ID删除
我也试图转换使用字符串对象ID:
new ObjectID(req.params.id);
但它失败,错误对象ID是不是构造。
谢谢,我可以让它工作导入mongodb。 '*进口从 “MongoDB的” MongoDB的;' '新mongodb.ObjectId(req.params.id);' 我不'吨知道为什么的ObjectID从typeorm包不工作。 –
因为它只是为类型声明“抽象类”,而不是为了运行时的目的。 在新版本中,您将能够通过id查找十六进制字符串。 –