Я разрабатываю приложение NodeJS с Express и MongoDB. Мои объекты не сохранялись в базе данных, поэтому я копнул глубже и обнаружил, что целевая коллекция не была создана, если я использовал:
const PersonSchema = new Schema({
firstName: String,
});
, и коллекция была создана, если я использовал
const PersonSchema = new Schema({
firstName: { type: String, unique: true},
});
В любом случае полная модель в server/models/person.js
:
'use strict';
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// Use native promises.
mongoose.Promise = global.Promise;
// Define the Person schema.
const PersonSchema = new Schema({
// ...
});
const Person = mongoose.model('Person', PersonSchema);
module.exports = Person;
У меня MongoDB 4.2.3 (с db.version()
в оболочке mon go), npm 6.14 .4, mon goose 5.7.5 и npm mongodb 3.3.2 (с npm list | grep mongodb
).
Почему MongoDB требует уникального поля в дополнение к _id
для создания коллекции?