【发布时间】:2020-12-12 03:42:20
【问题描述】:
我在使用 Mongoose 5.10.0 时遇到问题
考虑以下类
帐号:
export class Account {
_id: string;
email: string;
password: string;
phone: string;
address?: Address[] = [];
}
地址:
export class Address {
_id: string;
streetName: string;
zipCode: string;
city: string;
default: boolean | undefined;
}
以及适当的数据库模型
帐号:
import mongoose, { Schema, Document } from "mongoose";
import { Account } from "../classes/account.class";
import { addressSchema } from "./address.model";
export const accountSchema = new Schema({
_id: Schema.Types.ObjectId,
email: String,
phone: String,
password: String,
address: [addressSchema],
);
export type AccountModel = Document & Account;
export const Accounts = mongoose.model<AccountModel>("Account", accountSchema);
地址:
import mongoose, { Schema, Document } from "mongoose";
import { Address } from "../classes/address.class";
export const addressSchema: Schema = new Schema({
_id: Schema.Types.ObjectId,
streetName: String,
zipCode: String,
city: String,
default: Boolean,
});
export type AddressModel = Document & Address;
export const Addresses = mongoose.model<AddressModel>("Address", addressSchema);
现在,当我从数据库中获取一个帐户并尝试对结果的地址执行拉取操作时,根本找不到 pull() - 方法,我得到 Property 'pull' does not exist on type 'Address[]'.
架构的定义方式是否存在根本性错误?我哪里错了?
【问题讨论】:
-
Account[]是一个数组。数组没有pull方法。 -
因为在你的语句前面有一个 await 我猜你想在数据库端运行
pull并且你正在寻找这样的东西:stackoverflow.com/questions/56664906/… -
@mickl 感谢您将我推向正确的方向,从而解决了问题。愿意把它作为答案吗?
标签: node.js typescript mongoose mongoose-schema