#mongodb #mongoose-schema
#mongodb #мангуста-схема
Вопрос:
Я изучаю, как использовать Mongodb, и мне было интересно, есть ли сопоставимый способ создания схемы с Mongodb без использования Mongoose. Я хочу убедиться, что у меня есть хорошее понимание Mongodb. В настоящее время мое приложение работает, но все мои запросы находятся в server.js файл, поэтому я пытаюсь разбить файл.
Например, вот код для идентификации пользовательской схемы с помощью Mongoose. Есть ли способ, которым это можно сделать с помощью Mongodb?
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
// Create Schema
const UserSchema = new Schema({
name: {
type: String,
required: true
},
email: {
type: String,
required: true
},
password: {
type: String,
required: true
},
date: {
type: Date,
default: Date.now
}
});
module.exports = User = mongoose.model("users", UserSchema);
Ответ №1:
MongoDB по умолчанию не содержит схемы, что означает, что вы можете вставлять документы без предопределенной схемы, но если вам нужно применить определенные правила и ограничения к коллекции, вы можете добавить средство проверки схемы следующим образом:
db.createCollection("users", {
validator: {
$jsonSchema: {
bsonType: "object",
required: [ "name", "email", "password" ],
properties: {
name: {
bsonType: "string",
description: "must be a string and is required"
},
email: {
bsonType: "string",
description: "must be a string and is required"
},
password: {
bsonType: "string",
description: "must be a string and is required"
},
date: {
bsonType: "Date",
description: "must be a Date but is not required"
}
}
}
}
}
}
})
Комментарии:
1. Как вы подключаетесь к базе данных? Я предполагаю, что вам не нужно иметь другую строку подключения MongoClient сверху, как в моем server.js досье.
2. Вы можете использовать собственный клиент mongo для подключения к базе данных следующим образом: mongo —port XXXX —host ГГГГ -u ZZZZ -p