从node.js在mongolab mongodb数据库中创建集合架构

从node.js在mongolab mongodb数据库中创建集合架构,node.js,mongodb,mongoose,mlab,Node.js,Mongodb,Mongoose,Mlab,我不熟悉node.js和mongodb 我正在尝试从node.js应用程序为mongolab mongodb数据库中的用户集合创建模式,代码如下。代码似乎没有失败(至少,我没有收到错误消息),但我也没有看到任何成功的迹象。也就是说,当我去mongolab查看我的数据库时,我没有看到创建了任何模式- 有人能解释一下我可能做错了什么,或者我如何验证我的代码成功了,并且实际上为我的集合创建了一个模式 // file: app.js var express = require('express'),

我不熟悉node.js和mongodb

我正在尝试从node.js应用程序为mongolab mongodb数据库中的用户集合创建模式,代码如下。代码似乎没有失败(至少,我没有收到错误消息),但我也没有看到任何成功的迹象。也就是说,当我去mongolab查看我的数据库时,我没有看到创建了任何模式-

有人能解释一下我可能做错了什么,或者我如何验证我的代码成功了,并且实际上为我的集合创建了一个模式

// file: app.js

var express = require('express'),
    http = require('http'),
    mongoose = require('mongoose');

var app = express(),
    port = 3000;

// Connect to database in the cloud (mongolab)
mongoose.connect('mongodb://username:password@ds041344.mongolab.com:41344/stockmarket');

// Create a schema for User collection
mongoose.connection.on('open', function () {
    console.log(">>> Connected!");

    var UserSchema = new mongoose.Schema({
        username: {type: String, unique: true},
        password: String
    });

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

app.get('/', function(req, res){
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello, World!\n');
});

http.createServer(app).listen(port, function(){
  console.log("Express server listening on port " + port + " ...");
});

您必须先插入文档。架构在mongodb中没有明确定义。插入文档后,将自动创建集合,您将在mongolab控制台中看到它

来自


在上面的save调用之后,将创建集合

MongoDB中的数据具有灵活的模式。同一集合中的文档不需要具有相同的字段集或结构,集合文档中的公共字段可能包含不同类型的数据。

如何做到这一点?我应该在上面的代码中添加/更改什么?您必须查看mongoose API文档。还有一些关于堆栈溢出的例子,例如,我确实读过mongoose文档,它说:“模型是我们用来构造文档的类。”这意味着模型在文档之前,但您需要一个模式来创建模型。所以顺序似乎是:模式->模型->文档。听起来你说的顺序是文档->模式->模型。我很困惑。你提到的顺序是正确的,但你没有创建或插入文档。在插入文档之前,在这种情况下,mongodb服务器不会创建集合。当您定义mongoose模式或模型时,服务器端实际上没有做任何事情。用一个例子更新答案。啊哈!谢谢,布莱恩。很抱歉给你带来困惑。。。我正在读这本书(在凌晨我真的应该睡觉的时候),书上说,在我创建了一个模式后,我应该在mongolab中看到一些东西,显示这个模式是被创建的。这并没有发生,所以我认为我的代码在默默地失败。但现在我明白了。再次感谢。
var mongoose = require('mongoose');
var db = mongoose.createConnection('localhost', 'test');

var schema = mongoose.Schema({ name: 'string' });
var Cat = db.model('Cat', schema);

var kitty = new Cat({ name: 'Zildjian' });
kitty.save(function (err) {
  if (err) // ...
  console.log('meow');
});