如何在 node.js 中使用带有模型接口的打字稿填充 mongdb 包

编程入门 行业动态 更新时间:2024-10-04 01:24:23

如何在 node.js 中使用带有<a href=https://www.elefans.com/category/jswz/34/1771358.html style=模型接口的打字稿填充 mongdb 包"/>

如何在 node.js 中使用带有模型接口的打字稿填充 mongdb 包

我正在使用带有此接口(模型)的打字稿,名为 invoice.ts:

import { ObjectId } from "mongodb";

interface Invoice {
 _id: ObjectId;
 accountId: ObjectId;
 number: string;
 invoiceDate: Date;
 amount: number;
 paymentDate: Date;
 expectedPaymentDate: Date;
 updatedAt: Date;
 createdAt: Date;
 paymentAt: Date;
 repaymentAt: Date;
 reservation: object;
 totalCosts: number;
}

export { Invoice };

我想检索所有发票,其名称为对象的 accountId 以及发票的编号 + id + createdAt

在 service-loans.ts

我试过这个:

  import { Invoice } from "../models/invoice";
  import { MongoClient } from "mongodb";
  import logger from "../lib/logging/logger";

  const url: string = process.env["MONGODB_URL"] || "";
  const dbName: string = process.env["MONGODB_DATABASE"] || "";
  const client = new MongoClient(url);

  const getInvoices = async () => {
   try {
    await client.connect();
    const db = client.db(dbName);
    const invoiceCollection = db.collection<Invoice>("invoice");
    const invoices = await invoiceCollection
     .find(
      {},
       {
        projection: {
         accountId: 1,
         number: 1,
         id: 1,
         createdAt: 1,
        },
       },
      )
      .populate([{ path: "accountId", select: "name" }])
      .lean();
   }
   catch (error) {
    logger.error(error);
   }

 };
 export default { getInvoices };

它通过 populate 提示错误:类型上不存在属性“populate”。 TS(2339)。我需要路径名称“accountId”

有谁知道如何使查询正确吗?

回答如下:

更多推荐

如何在 node.js 中使用带有模型接口的打字稿填充 mongdb 包

本文发布于:2024-05-31 02:43:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771190.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模型   接口   如何在   js   node

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!