Question

Mise à jour : Vous connaissez un certain temps. Mais à l'époque décidé de ne pas utiliser mangouste. La principale raison étant que nous ne pouvions pas vraiment venir avec une grande raison d'utiliser un ORM lors de l'utilisation mongo et javascript.


J'ai essayé de créer une base de données / modèle avec mangouste qui est fondamentalement juste une base de données utilisateur où le nom d'utilisateur est unique. Cela semble assez simple, mais pour une raison que j'ai été incapable de le faire.

Ce que j'ai à ce jour est le suivant:

var mongoose = require('mongoose').Mongoose,
    db = mongoose.connect('mongodb://localhost/db');

mongoose.model('User', {
    properties: [
        'name',
        'age'
    ],

    cast: {
        name: String,
        age: Number
    },

    //indexes: [[{name:1}, {unique:true}]],
    indexes: [
        'name'
    ]
    /*,
    setters: {},
    getters: {},
    methods: {}
    */
});    

var User = db.model('User');

var u = new User();
u.name = 'Foo';

u.save(function() {
    User.find().all(function(arr) {
        console.log(arr);
        console.log('length='+arr.length);
    });
});
/*User.remove({}, function() {});*/

Il ne fonctionne tout simplement pas. La base de données est créée bien, mais le nom d'utilisateur est pas unique. Toute aide ou connaissance de ce que je fais mal?

Était-ce utile?

La solution

Vous devez définir le schéma. Essayez ceci: (

var mongoose = require('mongoose').Mongoose,
db = mongoose.connect('mongodb://localhost/db'),
Schema = mongoose.Schema;

mongoose.model('User', new Schema({
    properties: [
        'name',
        'age'
    ],

    [...]
}));    

Autres conseils

Pour Mongoose 2.7 (testé dans le nœud v 0.8.):

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

var db = mongoose.connect('mongodb://localhost/db');

var User = new Schema({
  first_name: String,
  last_name: String
});

var UserModel = mongoose.model('User', User);

var record = new UserModel();

record.first_name = 'hello';
record.last_name = 'world';

record.save(function (err) {

  UserModel.find({}, function(err, users) {

    for (var i=0, counter=users.length; i < counter; i++) {

      var user = users[i];

      console.log( "User => _id: " + user._id + ", first_name: " + user.first_name + ", last_name: " + user.last_name );

    }

  });

});

Essayez de donner droit chemin = var mangouste require ( 'mangouste'). Mongoose,

. Il a travaillé pour moi ..

#

mon code

require.paths.unshift("/home/LearnBoost-mongoose-45a591d/mongoose");
var mongoose = require('mongoose').Mongoose;


var db = mongoose.connect('mongodb://localhost/db');


 mongoose.model('User', {
            properties: ['first name', 'last name', 'age', 'marriage_status', 'details', 'remark'],


});

var User = db.model('User');
var record = new User();

record.first name = 'xxx';
record.last name = 'xxx';
record.age = 'xxx';
record.marriage_status = 'xxx';
record.details = 'xxx';
record.remarks = 'xxx';

record.save(function() {
User.find().all(function(arr) {

   console.log(arr); 
   console.log('length='+arr.length);



});

}); 


//User.remove({}, function() {});

compiler avec noeud filename.js bonne chance ..

Vous devez définir vos index uniques avant de lancer votre application pour la première fois. Dans le cas contraire, vous devez déposer votre collection et recommencer. En outre, la mangouste ne lancera pas d'erreur lorsque vous essayez d'enregistrer {name: « user1 »}. Quand user1 existe déjà

LearnBoost récemment téléchargé un ensemble d'exemples https://github.com/LearnBoost/mongoose / arbre / maître / examples

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top