La création d'une collection de schéma dans un mongolab à partir de la base de données mongodb node.js
Je suis nouveau sur node.js et mongodb.
Je suis en train de créer un schéma pour un Utilisateur de la collection dans une mongolab à partir d'une base de données mongodb node.js app avec le code ci-dessous. Le code ne semble pas être à l'échec (au moins, je n'ai pas de messages d'erreur), mais je ne vois aucune indication qu'il réussit. C'est, quand je vais à mongolab et de regarder ma base de données, je ne vois pas que tout schéma a été créé - https://dzwonsemrish7.cloudfront.net/items/01263Y1c312s233V0R17/mongodb-schema.png?v=7fdc20e3.
Quelqu'un peut m'expliquer ce que je fais de mal, ou comment je peux vérifier que mon code a réussi et un schéma a été, en fait, créé pour ma collection?
//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:[email protected]: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 + " ...");
});
OriginalL'auteur RBR | 2012-11-10
Vous devez vous connecter pour publier un commentaire.
Vous devez insérer un document. Les schémas ne sont pas explicitement définis dans mongodb. Une fois que vous insérez un document, la collection sera automatiquement créé et vous le verrez dans la mongolab console.
Exemple de http://mongoosejs.com/
après la sauvegarde d'appel au-dessus de la collecte sera créé
Vous devez vérifier la mangouste documentation de l'API. Il existe aussi des exemples autour de débordement de pile par exemple. stackoverflow.com/q/10520501/579461
Je n'ai pas lu la mangouste doc, et il a dit: "Un modèle est une classe avec laquelle nous construisons des documents.", ce qui implique que le modèle vient avant que le document, mais vous avez besoin d'un schéma pour créer un modèle. Donc, l'ordre semble être: schéma -> model -> document. On dirait que vous êtes disant que la commande est le document -> schema -> model. Je suis confus.
L'ordre que vous avez mentionné est correct, mais vous n'avez pas créé ou insérée dans un document. Jusqu'à l'insertion d'un document, le serveur mongodb ne va pas créer une collection dans ce cas. Rien n'est réellement fait sur le côté serveur lorsque vous définissez votre mangouste schéma ou modèle. La mise à jour de réponse avec un exemple.
Aha! Merci, Brian. Désolé pour la confusion ... je suis en train de lire ce livre (dans les petites heures du matin, quand j'ai vraiment devrait être en train de dormir au lieu de cela), et [j'ai pensé] il a dit que, après j'ai créer un Schéma, je devrais voir quelque chose dans mongolab que montre le schéma a été créé. Ce n'est pas arrivé, alors j'ai pensé que mon code n'était pas en silence. Mais maintenant que je l'obtenir. Merci encore.
OriginalL'auteur Brian Cajes
Données dans MongoDB dispose d'un flexible de schéma. Les Documents dans la même collection n'avez pas besoin d'avoir le même ensemble de champs ou de la structure, et les champs communs dans une collection de documents peut contenir différents types de données.
OriginalL'auteur Shyam Bhagat