sql >> Databasteknik >  >> NoSQL >> MongoDB

NodeJS Mongo - Mongoose - Dynamiskt samlingsnamn


Hej, du behöver bara deklarera schemamodell med ditt dynamiska namn, så här:

var mongoose  =  require('mongoose');
var Schema  =  mongoose.Schema;

// our schema 

function dynamicSchema(prefix){
    var addressSchema = new Schema({
        dir : {type : String, required : true},    //los 2 nombres delimitados por coma (,) ej. Alberto,Andres
        city : {type : String, required: true},   //la misma estructura que para los nombres ej. Acosta, Arteta 
        postal : {type : Number, required : true},
        _home_type : {type : Schema.Types.ObjectId, required : true, ref : prefix + '.home_type'},
        state : {type : String, required : true},
        telefono : String,
        registered : {type : Date, default: Date.now }
    });
    return mongoose.model(prefix + '.address', addressSchema);
}

//no we export dynamicSchema function
module.exports = dynamicSchema;

så i din kod var som helst kan du göra detta:

var userAdress = require('address.js')(id_user);
var usrAdrs1 = new userAddress({...});
    userAdrs1.save();

Gå nu till dina mongo shell &list samlingar (använd mydb och visa sedan samlingar), du kommer att se en ny samling för adress med uid prefix. På detta sätt kommer mongoose att skapa en ny insamlingsadress för varje olika användar-uid.



  1. BSON till JSON-konvertering med MongoDB Driver Java API

  2. Hitta värden genom att använda partiell nyckelnamn i en Redis Sorterad uppsättning

  3. MongooseJS/MongoDB sök exakt fras

  4. MongoDB $slice (inbäddad array-sökning)