Issue: 我正在创建一个包含模式的帐户表,如下所示 . 我只有一个帐户文档,供在我的localhost中运行的mongo服务器中的用户使用 . 在定义模式并添加单个帐户文档之后,我编写了一个 endpoints 来使用id键查询和获取该文档( Model.find(id: '12345') ) . 生成的JSON文档包含除了名为 accRef 的子文档之外的所有数据,如下面的Schema中所示 . 当我使用Mongo Shell尝试相同的查询查询时,我得到了完美的结果 . 我现在几乎整整一天造成这种情况,没有取得多大进展 . 任何帮助将受到高度赞赏 .

我从一个空模式开始,逐个添加每个字段,从id属性开始,然后触发查询查询 . 每一次,我都获得了所有75个元素和子文档,但是当我将accRef subdoc添加到我的模式时,这条信息就会从结果中消失 .

可以在mongoose模式中定义的子文档数量是否有限制?

此外,我似乎无法使用相同的架构插入/保存任何新的帐户对象,如下所示 . 但是,我可以使用像MongoChef这样的客户端使用完全相同的JSON对象执行此插入/保存操作 .

这是我的JS模块,我已经定义了我的模式:

import mongoose from 'mongoose';
mongoose.connect('mongodb://localhost:27017/accounts');

const Schema = mongoose.Schema;

const accountsSchema = new Schema({
  _id: Schema.ObjectId,
  id: String,
  uuid: String,
  firstName: String,
  lastName: String,
  contactNumber: Number,
  dob: Date,
  email: String,
  originalEmail: {type: String, index: true},
  password: String,
  socialMedia: {
    facebook: {
      id: String,
      email: String,
      token: String
    }
  },
  domainInfo: {
    country: String,
    currency: String,
    lang: String,
    domain: String
  },
  profile: {
    type: Number,
    id: Number,
    points: Number,
    accumulated: Number
  },
  perks: {
    id: Number,
    type: Number
  },
  address: {
    address: String,
    postalCode: String
  },
  paymentInfo: {
    cardNumber: String,
    isValidCard: Number,
    paypal: {
      email: String
    },
    bank: {
      bankName: String,
      bankNumber: String,
      accontId: Number,
      accountHolderName: String,
      bankBranchCode: String,
      paymentTypeId: Number
    },
    dateCreated: {type: Date, default: Date.now},
    dateModified: {type: Date, default: Date.now},
    createdAt: {type: Date, default: Date.now},
    updatedAt: {type: Date, default: Date.now}
  },
  metadata: {
    timezone: String,
    ipAddress: String,
    signupMeta: String,
    clientUserAgent: String,
    signupUrl: String
  },
  accRef: {
    type: String,
    code: String,
    url: String
  },
  key: String,
  parentId: String,
  type: String,
  utm: String,
  bounced: Number,
  status: Number,
  isPoints: Number,
  isAdmin: String,
  dateTutorialCompleted: {type: Date, default: Date.now},
  dateCreated: {type: Date, default: Date.now},
  dateModified: {type: Date, default: Date.now},
  dateAccessed: {type: Date, default: Date.now},
  dateVerified: {type: Date, default: Date.now},
  datePurchased: Date,
  createdAt: {type: Date, default: Date.now},
  updatedAt: {type: Date, default: Date.now}
});

const Account = mongoose.model('Account', accountsSchema);

export default Account;

触发mongo查询的服务类中的函数:

import Account from '../../models/mongo';

const getAccountById = (accountId) => {
  return Account.find({id: accountId})
    .then(response => {
      if(response.length === 0) {
        throw new Error("Account Not Found");
      }
      console.log(response);
      return response;
    })
    .catch(error => {
      throw new Error(error.message);
    });
};

Mongoose Version 尝试过: 4.7.74.7.8 (同时尝试过)

MongoDB Version 试过: 3.23.4 (试过两者)

Node Version7.4.0