Express js和Mongodb数据库定义

时间:2013-10-23 23:01:19

标签: javascript node.js mongodb backbone.js

这些天我开始学习节点,我正在使用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很多! :)

1 个答案:

答案 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