簡體   English   中英

如何在打字稿中使用貓鼬在mongodb中插入數據

[英]How to insert data in mongodb using mongoose in typescript

我已經為 crud API 實現了一個打字稿代碼,但目前,我在使用 mongoose 包使用 API 插入數據時遇到了一個問題。 因為我的數據庫是 MongoDB,所以我使用了這個包。

import Transaction from 'mongoose-transactions-typescript';

我正在打字稿項目,所以這就是我使用這個包的原因

public async createAffiliateUser(res_data: any){
        console.log("Function");
        

const 交易 = 新交易();

        console.log("Function123");
        const AffiliateUserModelName = 'affiliateusers'; // COLLECTION name
        console.log(res_data);
        await transaction.insert(AffiliateUserModelName, {
            name: res_data.name,
            userName: res_data.userName,
            groupId: res_data.groupId,
            commissionCount: res_data.commissionCount,
            commissionAmount: res_data.commissionAmount,
            is_active: res_data.is_active
        });
        
        return await transaction.run();
    }

在上面的代碼中突出顯示的行拋出了這樣的錯誤

TypeError:mongoose_transactions_typescript_1.default is not a constructor

在上面的函數中,當我嘗試使用 mongoose 的默認創建方法時,它只插入單列數據,即使傳遞完整數據如下

{
    "name": "Test",
    "userName":"test123",
    "groupId": "1",
    "commissionCount": 1,
    "commissionAmount": 2,
    "is_active": true
}

因此,如果有人知道如何使用打字稿或上述問題的解決方案在 MongoDB 中插入數據,請幫助我解決此問題

謝謝

不知道你這個代碼結構為什么要使用mongoose。

為了在 mongoose 中正確使用 mongodb 文檔,我遵循的步驟如下:

  1. 創建一個像這樣的貓鼬模型架構:
// I usually like create this file in a database folder
import mongoose, { Document, Model } from "mongoose";
const Schema = mongoose.Schema;

// creating the actual mongoose schema

const UserSchema = new Schema(
  {
    firstName: {
      type: String,
    },
    lastName: {
      type: String,
    },
    username: {
      type: String,
    },
    lang: {
      type: String,
      default: "it",
    },
  },
  { timestamps: true }
);

// exporting the type in order to have all the correct linting

export interface IUser extends Document {
  id: string;
  firstName: string;
  lastName?: string;
  username?: string;
  createdAt: Date | number;
  updatedAt: Date | number;
}

// registering in mongoose models the schema with the relative interface

const User =
  (mongoose.models.User as Model<IUser>) ||
  mongoose.model<IUser>("User", UserSchema);
export default User;

在這一點上,讓我們假設您有一棵類似於此的樹:

root_folder
          |-- database
          |        |-- User.ts
          |
          |-- controllers
                      |-- addUser.ts

  1. 在集合中創建文檔:
import { User } from "../../database/User.ts"

async function addUser(){
  const newUser = await new User({firstName: "foo", lastName: "bar", username:"testUser"}).save()
}

現在你應該在用戶集合中有你的新文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM