我 有 一 个 集合 , 我 想 将 文档 中 的 信息 存储 在 另 一 个 集合 中 。 根据 我 阅读 的 文章 , 他们 首先 从 集合 中 查找 所 需 的 值 , 然后 将 其 作为 子 文档 存储 在 另 一 个 集合 中 , 但 我 希望 Mongoose 自动 接收 和 存储 来自 集合 的 数据 。 我 使用 NEST 和 Mongoose 。
CreateProduct.schema.ts:
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import { Document } from 'mongoose';
export type CreateProductDocument = Product & Document;
@Schema()
export class Product {
@Prop()
name: string;
@Prop()
describe: string;
}
export const CreateProductSchema =
SchemaFactory.createForClass(Product);
中 的 每 一 个
ReserveProduct.schema.ts:
import { Prop, Schema, SchemaFactory } from '@nestjs/mongoose';
import mongoose, { Document } from 'mongoose';
import { Product } from 'src/fake-product/schema/product.schema';
export type ReserveDocument = Reserve & Document;
@Schema()
export class Reserve {
@Prop()
name: string;
@Prop({
type: [{ type: mongoose.Schema.Types.ObjectId, ref: Product.name }],
name: 'products',
})
products: Product;
}
export const ReserveSchema = SchemaFactory.createForClass(Reserve);
格式
我 想 在 保留 产品 架构 中 嵌入 产品 信息 。
- 预期 * *
我 想 从 用户 处 获取 此 请求 正文
{
'name' : 'TestName',
'products' : ['63317a213a320785264bb86d' , '63317a743a320785264bb871']
}
格式
并 从 产品 集合 中 获取 产品 详细 信息 ( 如 名称 等 ) , 然后 将 值 嵌入 到 保留 集合 中 。 我 阅读 了 此 代码 , 但 无法 完全 工作
async reserved(body: CreateFakeReserve) {
const createdFakeReserveInstance = new this.fakeReserve({
...body,
name: 'test',
});
await createdFakeReserveInstance.populate('products');
const res = await createdFakeReserveInstance.save();
return res;
}
格式
在 此 代码 中 , 使用 产品 集合 填充 id , 但 不 保存 在 保留 集合 上 , 在 博客 中 , 我们 首先 应该 使用 mongoose 上 的 find 方法 从 产品 集合 中 获取 产品 , 但 我 希望 设置 id , mongoose 从 集合 中 读取 数据 , 并 自动 嵌入 到 我 的 产品 集合 中
1条答案
按热度按时间ve7v8dk21#
您目前所做的只是在您的
Reserve
文件中参照Product
文件。如此一来,这两个集合会彼此独立管理。如果您想要将Product
文件内嵌到您的Reserve
文件中,您应该执行下列动作: