Difference between MongoDB and Mongoose

后端 未结 9 2476
一个人的身影
一个人的身影 2020-12-02 04:52

I wanted to use the mongodb database, but I noticed that there are two different databases with either their own website and installation methods: mongodb and mongoose. So I

9条回答
  •  眼角桃花
    2020-12-02 05:13

    From the first answer,

    "Using Mongoose, a user can define the schema for the documents in a particular collection. It provides a lot of convenience in the creation and management of data in MongoDB."

    You can now also define schema with mongoDB native driver using

    ##For new collection

    `db.createCollection("recipes",
        validator: { $jsonSchema: {
             <>
            }
        }
    )`
    

    ##For existing collection

    `db.runCommand( {
            collMod: "recipes",
            validator: { $jsonSchema: {
                 <>
                }
            }
        } )`
        
    

    ##full example

    `db.createCollection("recipes", {
      validator: {
        $jsonSchema: {
          bsonType: "object",
          required: ["name", "servings", "ingredients"],
          additionalProperties: false,
          properties: {
            _id: {},
            name: {
              bsonType: "string",
              description: "'name' is required and is a string"
            },
            servings: {
              bsonType: ["int", "double"],
              minimum: 0,
              description:
                "'servings' is required and must be an integer with a minimum of zero."
            },
            cooking_method: {
              enum: [
                "broil",
                "grill",
                "roast",
                "bake",
                "saute",
                "pan-fry",
                "deep-fry",
                "poach",
                "simmer",
                "boil",
                "steam",
                "braise",
                "stew"
              ],
              description:
                "'cooking_method' is optional but, if used, must be one of the listed options."
            },
            ingredients: {
              bsonType: ["array"],
              minItems: 1,
              maxItems: 50,
              items: {
                bsonType: ["object"],
                required: ["quantity", "measure", "ingredient"],
                additionalProperties: false,
                description: "'ingredients' must contain the stated fields.",
                properties: {
                  quantity: {
                    bsonType: ["int", "double", "decimal"],
                    description:
                      "'quantity' is required and is of double or decimal type"
                  },
                  measure: {
                    enum: ["tsp", "Tbsp", "cup", "ounce", "pound", "each"],
                    description:
                      "'measure' is required and can only be one of the given enum values"
                  },
                  ingredient: {
                    bsonType: "string",
                    description: "'ingredient' is required and is a string"
                  },
                  format: {
                    bsonType: "string",
                    description:
                      "'format' is an optional field of type string, e.g. chopped or diced"
                  }
                }
              }
            }
          }
        }
      }
    });`
    

    Insert collection Example

    `db.recipes.insertOne({
      name: "Chocolate Sponge Cake Filling",
      servings: 4,
      ingredients: [
        {
          quantity: 7,
          measure: "ounce",
          ingredient: "bittersweet chocolate",
          format: "chopped"
        },
        { quantity: 2, measure: "cup", ingredient: "heavy cream" }
      ]
    });`
    

提交回复
热议问题