1
MongoDBでTypeORMを使用して表現しようとしていますが、基本的な問題に問題があります。TypeORM FindByIdがMongoDBで動作しない
エンティティの基本的なCRUD操作を使用してコントローラを作成しました。メソッドsave、findAll、find by 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);
});
第2の方法は、常に例えば404 を返している私は、この特定のオブジェクトの呼び出しのための要求を送信しようとすると、これが得るすべての「投資/」
{
"id": "59dfd8cadcbd9d1720457008",
"name": "Teste LCI",
"startDate": 1466305200,
"numberOfDays": 365,
"type": "LCI_LCA"
}
にエンティティが返されます
投資/ 59dfd8cadcbd9d1720457008
応答は常に404同じ動作が例外
を上げ、deleteメソッドで発生私も変換しようとした特定のidで削除するエンティティを見つけることができません使用してオブジェクトIDの文字列は:
new ObjectID(req.params.id);
が、それは誤りのObjectIDで失敗コンストラクタではありません。
ありがとう、私はmongodbをインポートすることができます。 "MongoDBの" からMongoDBのように 'インポート*;' '新しいmongodb.ObjectId(req.params.id);' 私はtypeormパッケージdoesntの仕事から、なぜオブジェクトIDを知っている 'tを。 –
これは実行時の目的ではなく、型定義用の 'abstract class'を宣言しているためです。 新しいリリースでは、IDによって16進文字列を見つけることができます。 –