Frage

Aktualisieren : einiger Zeit. Aber damals beschlossen, nicht Mongoose zu verwenden. Sein Hauptgrund, dass wir nicht wirklich ein ORM für die Verwendung mit einem großen Grunde kommen könnten, wenn Mongo und Javascript.


Ich habe versucht, eine Datenbank / Modell mit Mongoose zu schaffen, die im Grunde nur eine Benutzerdatenbank, wo der Benutzername eindeutig ist. Klingt einfach genug, aber aus irgendeinem Grund habe ich es nicht gelungen, dies zu tun.

Was ich bisher habe, ist dies:

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() {});*/

Es funktioniert einfach nicht. Die Datenbank wird erstellt in Ordnung, aber der Benutzername ist nicht eindeutig. Jede Hilfe oder Wissen von dem, was ich falsch mache?

War es hilfreich?

Lösung

Sie müssen das Schema definieren. Versuchen Sie folgendes: (

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

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

    [...]
}));    

Andere Tipps

Mungo 2.7 (getestet in dem Knoten 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 );

    }

  });

});

Versuche richtigen Weg in var Mungo = geben erfordern ( 'Mungo'). Mongoose,

. Er arbeitete für mich ..

#

mein 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() {});

Compile es mit Knoten filename.js viel Glück ..

Sie sollten Ihre eindeutige Indizes vor dem Ausführen der App zum ersten Mal definieren. Andernfalls müssen Sie Ihre Sammlung löschen und neu beginnen. Auch Mungo nicht werfen einen Fehler, wenn Sie versuchen, speichern {name: ‚Benutzer1‘}. Wenn ‚user1‘ ist bereits vorhanden

Learnboost vor kurzem eine Reihe von Beispielen hochgeladen https://github.com/LearnBoost/mongoose / Baum / Master / Beispiele

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top