乐闻世界logo
搜索文章和话题

How to store object in mongoose schema?

6 个月前提问
5 个月前修改
浏览次数35

1个答案

1

在 Mongoose 中,我们可以通过定义一个 Schema 来存储对象数据。每一个 Schema 对应 MongoDB 中的一个 collection,而 Schema 中的每一个字段对应 collection 中的一个 document 属性。

如果要存储一个对象,可以在 Schema 中使用一个嵌套的对象数据结构,或者使用子 schema。以下是两种主要的方法来存储对象数据:

方法一:使用嵌套的对象

javascript
const mongoose = require('mongoose'); const { Schema } = mongoose; const userSchema = new Schema({ name: String, address: { street: String, city: String, zipCode: String } }); const User = mongoose.model('User', userSchema);

在这个例子中,我们创建了一个名为 User 的模型,其中包含一个 address 字段。这个 address 字段本身是一个对象,包含了 streetcityzipCode 三个属性。

方法二:使用子 schema

javascript
const mongoose = require('mongoose'); const { Schema } = mongoose; const addressSchema = new Schema({ street: String, city: String, zipCode: String }); const userSchema = new Schema({ name: String, address: addressSchema }); const User = mongoose.model('User', userSchema);

在此例中,我们首先定义了一个 addressSchema,然后在 userSchema 中使用了这个子 schema。这样,每个 User 中的 address 都会按照 addressSchema 的定义来存储数据。

使用子 schema 的好处是可以重用 schema,而且结构更清晰。如果 address 数据在多个地方被使用,这种方法会更有效。

无论是使用嵌套对象还是子 schema,都可以很好地在 Mongoose 中管理和存储结构化的对象数据。这使得数据模型更加清晰,也便于后续的数据操作和维护。

2024年6月29日 12:07 回复

你的答案