Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 有没有办法在mongoose的另一个模式中重用模式文档属性?_Node.js_Mongodb_Mongoose_Mongoose Schema - Fatal编程技术网

Node.js 有没有办法在mongoose的另一个模式中重用模式文档属性?

Node.js 有没有办法在mongoose的另一个模式中重用模式文档属性?,node.js,mongodb,mongoose,mongoose-schema,Node.js,Mongodb,Mongoose,Mongoose Schema,我有两个模式,它们具有重复的创建的和修改的属性。mongodb中有没有一种方法可以重用它,而不是反复重复相同的代码?似乎找不到合适的短语来谷歌搜索这个 管理模式 import mongoose from 'mongoose'; const AdminSchema = new mongoose.Schema({ _id: mongoose.Schema.Types.ObjectId, companyId: { id: mongoose.Schema.Types.ObjectId,

我有两个模式,它们具有重复的
创建的
修改的
属性。mongodb中有没有一种方法可以重用它,而不是反复重复相同的代码?似乎找不到合适的短语来谷歌搜索这个

管理模式

import mongoose from 'mongoose';

const AdminSchema = new mongoose.Schema({
  _id: mongoose.Schema.Types.ObjectId,
  companyId: {
    id: mongoose.Schema.Types.ObjectId,
    ref: 'Company',
  },
  created: {
    at: {
      type: Date,
      default: Date.now,
    },
    by: String,
  },
  modified: {
    at: {
      type: Date,
      default: Date.now,
    },
    by: String,
  },
});

export default mongoose.model('Admin', AdminSchema);
管理员权限模式

import mongoose from 'mongoose';

const AdminPermissionsSchema = new mongoose.Schema({
  _id: mongoose.Schema.Types.ObjectId,
  companyId: {
    id: mongoose.Schema.Types.ObjectId,
    ref: 'Company',
  },
  label: String,
  description: String,
  created: {
    at: {
      type: Date,
      default: Date.now,
    },
    by: String,
  },
  modified: {
    at: {
      type: Date,
      default: Date.now,
    },
    by: String,
  },
});

export default mongoose.model('AdminPermissions', AdminPermissionsSchema);

Mongoose为您提供了在创建或更新文档时使用
createdAt
updatedAt
属性设置时间戳的选项。执行此操作,而不是使用
创建的
修改的

const AdminSchema = new mongoose.Schema({
  _id: mongoose.Schema.Types.ObjectId,
  companyId: {
    id: mongoose.Schema.Types.ObjectId,
    ref: 'Company',
  },
  createdBy: String,
  modifiedBy: String,
}, {timestamps: true}); //this is required

export default mongoose.model('Admin', AdminSchema);

并分别处理
createdBy
modifiedBy
。您可以为所有模式声明添加时间戳,如上面的声明。

Mongoose为您提供了在创建或更新文档时使用
createdAt
updatedAt
属性设置时间戳的选项。执行此操作,而不是使用
创建的
修改的

const AdminSchema = new mongoose.Schema({
  _id: mongoose.Schema.Types.ObjectId,
  companyId: {
    id: mongoose.Schema.Types.ObjectId,
    ref: 'Company',
  },
  createdBy: String,
  modifiedBy: String,
}, {timestamps: true}); //this is required

export default mongoose.model('Admin', AdminSchema);

并分别处理
createdBy
modifiedBy
。您可以像上面那样为所有模式声明添加时间戳。

这可以通过插件完成。但是mongoose也有这样的功能(更新和创建日期),这可以通过一个插件来完成。但是mongoose在板上也有这样的功能(更新和创建日期)。酷:D所以这些时间戳是默认的UTC,对吗?然后你只需加上你的偏移量,例如+8小时。。。取决于时区?酷:D所以这些时间戳是默认的UTC,对吗?然后你只需加上你的偏移量,例如+8小时。。。取决于时区?