寻找猫鼬"你好世界"的例子

fre*_*all 12 javascript mongoose mongodb

更新:已经有一段时间了.但当时决定不使用Mongoose.主要原因是我们在使用mongo和javascript时无法真正想出使用ORM的理由.


我一直在尝试用Mongoose创建一个数据库/模型,它基本上只是一个用户数据库,用户名是唯一的.听起来很简单,但由于某种原因,我一直无法这样做.

到目前为止我得到的是:

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() {});*/
Run Code Online (Sandbox Code Playgroud)

它只是不起作用.数据库创建正常,但用户名不是唯一的.对我做错的任何帮助或了解?

evi*_*ery 16

您需要定义架构.试试这个: (

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

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

    [...]
}));    
Run Code Online (Sandbox Code Playgroud)

  • 为什么这会被否决?用户将标准Javascript对象传递给mongoose.model,而不是Schema实例 (2认同)

jks*_*dua 8

对于Mongoose 2.7(在Node v.8.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 );

    }

  });

});
Run Code Online (Sandbox Code Playgroud)