sql >> Database teknologi >  >> NoSQL >> MongoDB

NodeJS Mongo - Mongoose - Dynamisk samlingsnavn


Hej, du skal bare erklære skemamodel med dit dynamiske navn, sådan her:

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 kode hvor som helst kan du gøre dette:

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

Gå nu til dine mongo shell &list samlinger (brug mydb og vis derefter samlinger), du vil se en ny samling for adresse med uid præfiks. På denne måde vil mongoose oprette en ny indsamlingsadresse for hver forskellig bruger-uid.



  1. Tilføjelse af et BSON-array til et MongoDB 3.2-dokument og udpakning af værdierne ( MongoCXX 3.2 ) ( C++ 11)

  2. Hvordan adskiller redis instansen med flere brugere, der kører på samme server?

  3. Eclipselink med MongoDB java.lang.ClassCastException

  4. Indsættelse af et billede til MongoDB gennem Node.js