Как создать модель с помощью Mongodb?

#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