sql >> Databáze >  >> NoSQL >> MongoDB

NodeJS Mongo - Mongoose - Dynamický název kolekce


Dobrý den, stačí deklarovat model schématu se svým dynamickým názvem, například takto:

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;

takže ve svém kódu kdekoli můžete udělat toto:

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

Nyní přejděte do svého mongo shell &seznam sbírek (použijte mydb a poté zobrazte sbírky), uvidíte novou kolekci pro adresu s předponou uid. Tímto způsobem mongoose vytvoří novou jednu adresu sbírky pro každé různé uživatelské uid.



  1. Jak naplnit vnořené entity v mongoose?

  2. Aggregate Query v Mongodb vrací konkrétní pole

  3. Jak se dotazovat s více podmínkami a tyto podmínky jsou závislé

  4. Vypršení platnosti RedisTemplate nefunguje