Articles of 数据库模式

在Mongoose中填充inheritance的文档

我正在尝试为以下模型创build一个数据库模式: 我不知道什么是更好的方式来表示这个在MongoDb将是,但因为我使用Mongoose和有一个插件的inheritance,我想下面的: var mongoose = require('mongoose') , extend = require('mongoose-schema-extend') , Schema = mongoose.Schema , ObjectId = mongoose.Schema.Types.ObjectId var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error:')); db.once('open', function callback () { //Mashup and Item are bound (itemSchema is a sub-doc) var itemSchema = new Schema({ pos: { top: Number, left: Number } , size: { […]

Mongo:在子目录上查询

您好,我有这个问题时检查如果一个子文档存在之前推新的子文档。 var UserSchema = new Schema({ name : String, app_key : String, app_secret : String, tasks : [{type: Schema.ObjectId, ref: 'Task'}] // assuming you name your model Task }); var TaskSchema = new Schema({ name : String, lastPerformed : Date, folder : String, user : {type: Schema.ObjectId, ref: 'User'} // assuming you name your model […]

使用Sequelize连接Node / Express应用程序的现有MySQL数据库

在一个项目上完成一个完整的重写RoR到Node / Sequelize / Express / Angular应用程序。 我已经执行了我的本地机器上的旧架构,并可以查看数据库,表和数据确定。 在我的节点代码中,我需要连接现有的数据库。 我正在学习本教程: http : //redotheweb.com/2013/02/20/sequelize-the-javascript-orm-in-practice.html 当使用sequelize.import并指向一个目录时,我的问题出现了。 这应该是我的本地MySQL目录架构设置? (假设是) 模型是否参考数据库中的表格? 关于如何正确访问现有的关系映射的build议是有帮助的。 这个如果我对Stack的第一个问题,提前谢谢。 var express = require('express'); var http = require('http'); var path = require('path'); var config = require('./config/config'); var Sequelize = require('sequelize'); var app = express(); var db = new Sequelize('somedb', 'root', 'password'); var models = [ 'users' […]

虚拟在Mongoose对象是未定义的?

我最近一直在学习MongoDB和Mongoose以学习MEAN栈。 使用这个课程: https : //www.edx.org/course/introduction-mongodb-using-mean-stack-mongodbx-m101x我试图为我的产品架构创build一个虚拟,显示价格更方便用户办法。 但是,打印出这个虚拟displayPrice它会出现未定义,除非通过toObject或toJSON访问,即使这样USD符号显示为一个问号。 我为任何愚蠢和明显的忽视道歉,我是这个数据库的新东西,无法find许多简单的解释事情的教程。 这里是代码: var mongoose = require("mongoose"); var Category = require("./categoryschema.js"); var productSchema = { name: { type: String, required: true }, // Pictures must start with http://" pictures: [{ type: String, match: /^http:\/\//i }], price: { amount: { type: Number, required: true }, currency: { type: String, enum: ["USD", […]

新的mongoose布尔属性,每个人都是true,默认是false

我有一个UserModel,用于生产。 我想添加一个布尔属性(isRegistered)。 对于已经在我的平台上的用户,我希望这个新属性是真实的。 对于新用户,我希望它默认为false。 我怎么能把default: false的我的mongoose模型,但对这里已经有人呢? 谢谢 !

PostgreSQL的Sequelize模式:如何在模型中准确定义模式?

我search了整个networking,并没有能够确定如何添加一个模式到这个下面的续集模型。 下面的代码不会反弹错误,但是当我检查postgres数据库时,唯一的模式是公共的默认模式。 // The model definition is done in /path/to/models/project.js module.exports = function(sequelize, DataTypes) { return sequelize.define("project", { name: DataTypes.STRING, description: DataTypes.TEXT, }, define: { schema: "prefix" }, classMethods: { method1: function() {}, method2: function() {} }, instanceMethods: { method3: function() {} }) 应如何修改脚本以准确定义模式? 编辑 就我而言,最终的答案是 database_name.sequelize.createSchema('prefix').then(() => {…}); 在我的./models/index.js文件中,数据库对象如下所示: database_name = { Sequelize: Sequelize, […]

当定义一个字段两次时,Mongoose抛出`Field不在模式错误中

我正在使用Node v0.10.31和mongoose@3.8.22。 我想我遇到了一个特定的事情发生时出现的错误。 这个bug的影响阻止了我在同一个模式上有一个字段“name”和“father.name.full”。 这是我如何定义我的模式: 'use strict'; var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/myapp'); var PersonSchema = new mongoose.Schema({ name: { type: mongoose.Schema.Types.ObjectId, ref: 'Name', // if this is commented out, no errors required: false, default: null, }, father: { name: { full: String } // if this is `name: String`, no errors } }, { strict: […]

如何在meteor中使用打字稿使用mongo模式validation?

在使用Typescript时,是否有一个在Meteor 1.3中使用模式validation的包? meteor指南推荐的软件包(aldeed:simple-schema)似乎没有定义文件。 那么用什么来代替,或者Typescript有一个内置的方法来做到这一点?

mongoose的行为和模式

目前我正在学习nodejs和mongodb,有两件事让我迷惑。 (1),当使用新的Schema和模型名称(不在db中)时,名称被改为复数forms。 例: mongoose.model('person', personSchema); 在数据库中,该表将被称为“人”。 这难道不容易混淆新开发者,为什么他们这样实现呢? (2)第二件事是,每当我想引用mongoDb中的现有模型(假设在db中,存在一个名为people的表)。 然后在我的nodejs代码中,我仍然需要定义一个Schema来创build一个引用这个表的模型。 personSchema = new mongoose.Schema({}); mongoose.model('person',personSchema); 不寻常的是,我如何定义模式似乎并不重要,它可以像上面那样是空的,或者填充随机属性,但是模型总是会得到正确的表,并且CRUD操作正常执行。 那么除了定义表结构来创build新表之外,Schema的用法是什么? 非常感谢,

Upvote和Downvote主干,快车和mongoose

我正在尝试实现类似于stackoverflow或reddit的投票系统,用户只能在给定的职位上投票一次。 遵循这里给出的build议 在mongodb中存储upvotes / downvotes 我创build了两个模式来存储upvotes和downvotes。 对于每个用户,我都跟踪用户投票的post。 邮政架构: var postSchema = new Schema({ name: String, votes: Number, votetype: Number, postedBy: { type: String, ref: 'User' }, }); 用户架构: var userSchema = new Schema({ twittername: String, twitterID: Number, votedPosts : [{ _id : mongoose.Schema.Types.ObjectId , votetype: Number }] }); 取决于当前用户,每个post将有不同的视图,如果用户在upvotebutton或downvotebutton将变为橙色之前投票(与stackoverflow类似),所以我有以下(简化)主干模型的职位: var PostModel = Backbone.Model.extend({ urlRoot : […]