这些天我开始学习节点,我正在使用Express js框架。
我从Christophe Coenraets找到了这个很棒的教程,因为我在Backbone js方面有一点经验,所以我需要的所有东西。
在Node js中让我最困惑的是使用数据库。 (因为我使用PHP,我只熟悉MYSQL)
例如,在本教程中,在此文件中
https://github.com/ccoenraets/nodecellar/blob/master/routes/wines.js
他使用“populateDB”函数首次填充数据库,以便在应用启动时填充一些doomy数据,
现在,因为我使用的是PHP,我在做什么做同样的事情,我想创建数据库结构或类似shell之类的东西,所以我可以在头脑中有一个图像来表示数据,例如我看到一些例子是“mongoose”模块“mongo db对象建模”,有一些像“Schema”之类的东西。
有人可以解释我在使用Node js中的数据库时的正确逻辑,在创建应用程序时如何启动,过程和内容?它有点令人困惑,开始工作,并从一开始就不知道数据库的样子。
Tnx很多! :)
答案 0 :(得分:1)
像mongodb这样的NoSQL数据库的问题是你不再拥有传统的列,行和表。我们现在有字段,文档和集合。见SQL to MongoDB Mapping Chart
Mongoose是一个框架,它为应用程序数据建模提供基于模式的解决方案。它没有必要使用,但确实为您提供了类似于SQL模式的预定义模式和模型的选项,而不是直接将JSON插入集合中。有关详细信息,请参阅Why does mongoose use schema when mongodb's benefit is supposed to be that it's schema-less?。
例如:
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test');
var Schema = mongoose.Schema;
var catSchema = new Schema({ //cat schema
name: String,
age: Number
});
var Cat = mongoose.model('Cat', catSchema); //cat model
var kitty = new Cat({ name: 'Zildjian', age: 5 }); //kitty is a cat
kitty.save(function (err) {
if (err) // ...
console.log('Error saving to the database');
});
...现在你的mongodb中保存了一只小猫
首先:下载并安装mongod和mongodb,npm install mongoose,通过mongoose创建你的架构和模型。
要从数据库查询/查找/检索文档/行,请使用model.find(),例如:
// named Zildjian and at least 5
Cat.find({ name: 'Zildjian', age: { $gte: 5 }});
有关详细信息,请参阅model.find API