【问题标题】:Express js and Mongo DB database definition [closed]Express js和Mongodb数据库定义[关闭]
【发布时间】:2013-11-02 10:47:42
【问题描述】:

这几天开始学习node,我用的是Express js框架。

我从 Christophe Coenraets 那里找到了这个很棒的教程,里面有我需要的所有东西,因为我在 Backbone js 方面有一点经验。

在 Node js 中最让我困惑的是使用数据库。 (我只熟悉MYSQL,因为我使用的是PHP)

例如在本教程中,在这个文件中

https://github.com/ccoenraets/nodecellar/blob/master/routes/wines.js

他在应用启动时第一次使用“populateDB”函数填充数据库,其中包含一些厄运数据,

现在,因为我使用的是 PHP,我要做什么,我在那里做同样的事情,我想创建数据库结构或类似 shell 的东西,这样我就可以在我的脑海里有一个图像来表示数据,例如我看到一些例子是“mongoose”模块“mongo db对象建模”,其中有一些像“Schema”或类似的东西。

有人能解释一下在 Node js 中使用数据库的正确逻辑吗?在创建应用程序时如何开始、流程和内容?开始工作并从一开始就不知道数据库的样子有点令人困惑。

Tnx 很多! :)

【问题讨论】:

标签: javascript node.js mongodb backbone.js


【解决方案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

【讨论】:

  • Tnx,这对我帮助很大!
猜你喜欢
  • 2012-04-14
  • 2015-08-21
  • 2015-02-02
  • 2016-04-07
  • 2020-02-10
  • 2016-06-11
  • 2012-09-22
  • 1970-01-01
  • 2020-04-30
相关资源
最近更新 更多