sql >> Databasteknik >  >> NoSQL >> MongoDB

hur man skapar dynamiska dokumentnycklar i mongodb

Använd parentesnotation att konstruera dokumentet dynamiskt. Du måste först skapa ett tomt objekt som håller nycklarna och sedan använda parentesnotationen för att lägga till de dynamiska fälten till objektet:

insertData_dynamic_colone: function(collection, colone1, colone2) {
    var obj = {};
    obj[colone1] = "14";
    obj[colone2] = "15";
    dbObject.collection(collection).insertOne(obj, function(err, result) {
        assert.equal(err, null);         
    });
}

eller

insertData_dynamic_colone: function(collection) {

    var obj = {},
        colone1 = "prod",
        colone2 = "prod2";
    obj[colone1] = "14"; // bracket notation
    obj[colone2] = "15";

    dbObject.collection(collection).insertOne(obj, function(err, result) {
        assert.equal(err, null);         
    });
}

Eller så kan du använda ES2015 Object initializer syntax (som påpekats av @xmikex83 i kommentarer):

insertData_dynamic_colone: function(collection) {

    var colone1 = "prod";
    var colone2 = "prod2";
    dbObject.collection(collection).insertOne({
        [colone1] : "14", // Computed property names (ES6)
        [colone2] : "15"
    }, function(err, result) {
        assert.equal(err, null);         
    });
}


  1. Denna nod startades inte med alternativet replSet

  2. MongoDB, lägga till nytt { field :value } i befintligt inbäddat dokument med flernivåpunktsnotation?

  3. Minska poäng i Redis eller ta bort om 0

  4. Varför fryser PyGame när det används i kombination med PyMongo?