📅  最后修改于: 2023-12-03 14:49:43.675000             🧑  作者: Mango
MongoDB 是一种流行的 NoSQL 数据库,它支持使用默认值作为文档的属性。在 NodeJS 中使用 MongoDB 时,我们可以利用默认值来简化数据模型的定义和操作。
MongoDB 的文档是键值对的集合,当我们创建一个新文档时,必须给所有属性设置一个初始值。如果某些属性有一个常见的默认值,我们可以配置 MongoDB 来在新文档中自动设置这些属性。
例如,我们可以定义一个名为 user
的集合,每个 user
文档都有一个 created
属性,表示用户创建的时间。我们可以将 created
的默认值设置为当前时间,并告诉 MongoDB 在创建新的 user
文档时使用该默认值:
const { MongoClient } = require('mongodb');
const client = await MongoClient.connect('mongodb://localhost:27017/myapp', { useUnifiedTopology: true });
const db = client.db();
const userSchema = {
name: String,
email: String,
created: { type: Date, default: Date.now },
};
const users = db.collection('users', { strict: true });
users.createIndex({ email: 1 }, { unique: true });
try {
await users.insertOne({ name: 'Alice', email: 'alice@example.com' });
console.log('User created successfully');
} catch (err) {
console.error(err);
} finally {
await client.close();
}
在上面的例子中,我们将 created
字段的默认值设置为 Date.now
方法的返回值。当我们创建新的 user
文档时,如果没有提供 created
字段的值,MongoDB 会自动将其设置为当前时间。
在 NodeJS 中使用 MongoDB,我们需要使用一个对象来描述一个文档模式,这个对象定义了每个属性的类型和其他元数据。我们可以使用 default
关键字来为每个属性设置默认值。
例如,以下是一个简单的 user
模式,其中包含一个默认的 created
属性:
const userSchema = {
name: String,
email: { type: String, unique: true },
created: { type: Date, default: Date.now },
};
在上面的例子中,我们在 created
字段上使用了 default
关键字,并将其设置为 Date.now
方法的返回值。当我们创建新的 user
文档时,如果没有提供 created
字段的值,MongoDB 会自动将其设置为当前时间。
使用默认值可以确保我们的文档在创建时包含一些常见的属性。这简化了我们的数据模型定义,并使我们的代码更加简洁和易于维护。在 NodeJS 中使用 MongoDB,我们只需要在文档模式中为每个属性设置默认值即可。