簡體   English   中英

如何在mongoDB數組中插入許多動態字段?

[英]How to insert a number of dynamic fields into a mongoDB array?

我的頁面中有以下代碼。 每當我單擊“添加新字段按鈕”時,就會向頁面添加新字段。 我需要完成的是將每個新字段插入到mongodb數據庫數組中。

    function addInput(divName){
        if (counter == limit)  {
            alert("You have reached the limit of adding " + counter + " inputs");
        }
        else {
            var newdiv = document.createElement('div');
            newdiv.className = "row-inputs";
            newdiv.innerHTML = '<input type="text" name="productName" placeholder="product name" class="q-product-name">'  + 
            '<input type="number" name="quantity" placeholder="1" class="q-quantity" value=1>' +
            '<input type="text" name="pricePerUnit" placeholder="price" class="q-price">' +
            '<input type="text" name="itemTotal" placeholder="price" class="q-total">';
            document.getElementById(divName).appendChild(newdiv);
            counter++;
        }
    }

以上是我的架構:

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

var InventorySchema = Schema({
    created_at: {type: Date, default: Date.now },
    name: String,
    list: [{
        product_name: String,
        quantity: Number,
        pricePerUnit: Number,
        itemTotal: Number
    }],
    invoiceTotal: Number,
    comment: String,
    dueDate: Date
})

var inventory = mongoose.model('inventory', InventorySchema);

module.exports = inventory;

如何告訴貓鼬將動態創建的每個字段添加到數據庫中?

非常感謝!

如果您定義了帶有已定義類型的靜態架構,則無法插入新字段。

但是,您可以指定屬性的類型({}),它將允許將任何內容保存到該屬性。 如果要使對象或整個模式中的一個動態,則可以定義如下模式:

var InventorySchema = Schema({
    created_at: {type: Date, default: Date.now },
    name: String,
    list: [{ }],
    invoiceTotal: Number,
    comment: String,
    dueDate: Date
})

警告:您將無法驗證或鍵入任何動態變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM