重新命令mongoose对象(实例)与相关的mongoose Schema具有相同的顺序

时间:2016-12-08 16:27:25

标签: javascript node.js mongodb mongoose

我使用带有express的nodeJs来创建一个Web应用程序,并使用mongoose在我的应用程序中创建模型。正如您在Javascript中所知,我们无法保证JS对象的排序。 现在,当我使用find()或findOne()方法来查询特定模型时,它返回一个JS对象,并且所有事情都很好,并且正如我所期望的那样。问题是我需要返回的JS对象具有我在相关的mongoose模型中定义的相同顺序。 考虑/models/user.js中的我的用户模型定义:

var mongoose = require('mongoose');

var user = mongoose.Schema({
  local: {
    email: String,
    password: String
  },
  firstName: String,
  lastName: String,
  role: {
    type: String,
    enum: ['admin', 'customer', 'guest']
  },
  address: {
    country: String,
    state: String,
    rest: String
  },
  phoneNumber: String,
  isActive: Boolean,
  registeredDate: String
});

现在,如果我使用find方法查找具有特定电子邮件地址(已存在于DB中)的用户,则返回正确的一个没有问题,但返回的对象没有上面js中定义的确切顺序mongoose模型(可以从JS对象中获得)。简而言之,我需要返回的对象如下所示(我的应用程序需要的内容):

{
  local: {
    email: 'someone@example.com',
    password: '123dfgREW'
  },
  firstName: 'Rose',
  lastName: 'Marent',
  role: 'customer',
  address: {
    country: 'Brazil',
    state: 'etc',
    rest: 'etc'
  },
  phoneNumber: '+654987321',
  isActive: true,
  registeredDate: '2/19/2006'
}

但它就像下面(我得到的):

{
  isActive: true,
  role: 'customer',
  address: {
    state: 'etc',
    country: 'Brazil',
    rest: 'etc'
  },
  phoneNumber: '+654987321',
  lastName: 'Marent',
  registeredDate: '2/19/2006'
  firstName: 'Rose',
  local: {
    email: 'someone@example.com',
    password: '123dfgREW'
  },
}

如何使用mongoose重新命令got对象的订单与该Model的定义Schema相同?

0 个答案:

没有答案