Tag: 数据库

mongoose – 不能用子模型创build模型

我有一个模型和一些子模型,它们通过父母的ID链接,但是我不能创build父母,然后创build孩子,如果我这样做,反过来,孩子们什么都不挂。 这是我的代码: var mongoose = require('mongoose'); var personalDataSchema = new mongoose.Schema({ form_id : {type : mongoose.Schema.Types.ObjectId, ref : FormModel}, first_name : String, age : Number, gender : String, nationality: String, adress : String, birth_date : String, CNP : String }) var contactDataSchema = new mongoose.Schema({ form_id : {type : mongoose.Schema.Types.ObjectId, ref : FormModel}, phone : […]

在NEO4J中重新调整复杂的树状结构,没有重复

我有一个getPhotosInBucket方法,它返回一个给定的桶中存在[:IN]关系的所有照片,每个照片都有自己的关系集合,每个getPhotosInBucket都包含对应于不同版本图像的属性。 小,中等,缩略图等。为了使事情更加复杂,每张照片也有一个创作者,每个创作者都有一个缩略图,像一张照片一样有多个与之相关的Meta节点。 以下是将要返回的内容的简化版本。 在这个例子中,只有一个用户创build了这个桶并创build了每张照片,但是在现实世界中,用户James可能会有一个包含100个不同图像的桶,每个图像都有自己的创build者,缩略图和创build者缩略图。 用来返回这个数据的查询有点冗长,只是为了展示我的结构,并生成一个可视化的graphics: MATCH (album:Asset:Album:Bucket {name: 'Bucketjamesprivate'}) MATCH (album)<-[:CREATED]-(creator) OPTIONAL MATCH (album)<-[:THUMBNAIL]-(albumThumb)<-[:META]-(albumThumbMeta) OPTIONAL MATCH (creator)<-[:THUMBNAIL]-(creatorThumb) OPTIONAL MATCH (creatorThumb)<-[:META]-(creatorThumbMeta) OPTIONAL MATCH (album)<-[:IN]-(photos)<-[:META]-(meta) OPTIONAL MATCH (photos)<-[:CREATED]-(photoOwner)<-[:THUMBNAIL]-(photoThumbnail)<-[:META]-(photoThumbnailMeta) RETURN DISTINCT album, albumThumb, albumThumbMeta, creator, creatorThumb, photos, meta, photoOwner, photoThumbnailMeta 这最终返回以下内容: 正如你所看到的,James创造了1个桶,1个桶缩略图和3个元节点,2个在桶中的每个都有3个元节点,最后他有一个缩略图和3个元节点。 实际返回的行数是54,只有当我把一堆照片放回去时,才能成倍增长,所以也许有更高效的方法来做这件事。 我已经尝试使用收集方法,但它引入了一些奇怪的重复,我敢肯定,但我不明白为什么足够好。 我希望我的方法最终返回的对象将是这样的: { album: { name: 'etc', foo: 'bar', bar: 'foo' }, albumThumb: [ { […]

如何查询greates值(sortkey / range)dynamodb?

也许这是一个非常简单的问题,但我没有find一个合适的解决scheme。 我有一个辅助键/范围键/sorting键,什么和它的价值是一个数字。 所以在表中有几个项目与这个关键,我想获得最大的数量/价值的项目。 我发现这在栈溢出,但这看起来不像从aws 文档中的东西。 在这个文档中,你可以findGT或GE,但我不想比较一个数字的价值,我想最伟大的…也许你可以帮助

创build一个logging和一个关联的logging

问题: 想象一下,我有两个相关的模型, Library 有很多 Book : var Library = sequelize.define('Library', { title: Sequelize.STRING, description: Sequelize.TEXT, address: Sequelize.STRING }); var Book = sequelize.define('Book', { title: Sequelize.STRING, description: Sequelize.TEXT, publish_date: Sequelize.DATE }); Library.hasMany(Book); 现在,为了创build一个Library和一个相关的Book ,我做: Library.create({ name: 'Roan Library', address: '123 Any St' }).then(function (library) { Book.create({ title: 'Reading with Time', description: 'A fun jaunt in reading', […]

程序数据库代码与多个数据库调用

所以这是一个相当高层次的问题 我正在devise一个数据库,我不确定在哪里把程序逻辑pipe理复杂的查询。 我看到两个可能的select,如下所示: 1)定义过程数据库代码中的逻辑。 例如,在数据库(例如:PLpgSQL)中: create function A … create function B … create function C … create function main { a = select * from A() … b = select * from B() … where a … c = select * from C() … where b … return c; } 然后在周围的服务器环境中(例如:Node.js): result = query('main'); […]

为我的节点应用程序select正确的数据库

我是新的节点js&我需要build议为我的节点应用程序select数据库。 比方说,我的名单上有几个游戏(以千计)。 数组应该看起来像这样: { "Football": { "John": [{ "age": "1", "weight": "2", "height": "3", }], "Smith": [{ "age": "11", "weight": "22", "height": "33", }], … }, "Golf": { "Ricky": [{ "age": "4", "weight": "5", "height": "6", }], "Jonathan": [{ "age": "44", "weight": "55", "height": "66", }], … }, … /* Thousand more to go */ […]

创build一个unit testing两个检查两个psql模式是否相同

我有一个庞大的数据库模式,有时更新这个项目。 所以我有一个名为schema.sql的文件,它具有当前的模式,还有一个包含我随着时间的推移部署的所有补丁的目录(称为patches/20160710.sql ,带有名为origin.sql的第一个模式的文件)。 如果我进行全新安装,则使用schema.sql ,否则在更新时应用此修补程序。 在更新生产模式之前,我已经在testing服务器上进行testing,而且几乎所有东西都自动完成了。 到目前为止效果很好。 不幸的是,一旦我写了一个不同的东西去schema.sql和补丁。 我的unit testing只对一个新的数据库运行,所以testing没有失败,我发现这个错误只是我在testing服务器上的补丁。 我想编写一个unit testing,它接受schema.sql ,部署它,并将模式与在origin.sql应用的所有修补程序生成的模式进行比较。 我也需要检查一些表具有相同的值。 数据库是postgresql,软件在node.js中。 Gitlab CI使用自定义的Docker镜像来运行testing,所以我真的可以用任何语言来进行testing。 当然,补丁和schema.sql都有相同的数据库名称,所以我想我必须应用schema.sql ,以某种方式转储它,然后删除数据库并从补丁重新创build它,再次转储它并比较结果。 这种方法是否有意义或有更好的方法来实现我在做什么? 如果这是有道理的,转储两个数据库并比较它们的好方法是什么?

可用于部署应用程序的最简单的服务器和数据库服务(AWS特定)

我已经写了一个实时的多人游戏,并且正在使用NodeJS编写它的服务器。 我希望我的游戏有login,升级等,所以我需要一个数据库。 这是我第一次部署一些东西,而且我主要是自学的,所以如果我把事情搞混了,请纠正我。 由于这是我的第一次审判,我不想立即做出承诺,所以我只是在寻找免费的select。 因为这应该是一个实时游戏,我需要一个相对较快的服务器响应。 这就是为什么我正在寻找最简单的数据库和服务器提供程序,我知道有了这些限制,我有有限的select和function。 据我在网上阅读,Heroku似乎是我最简单的select服务器(这就是为什么我开始在NodeJS写作)。 但似乎没有免费的数据库服务,因为https://devcenter.heroku.com/articles/heroku-postgres-plans上的所有选项都有月费。 我不想使用Google App Engine,因为我是新手(当然没有提到初学者友好)。 所以,我发现AWS下面的免费云数据库服务的家庭发展后,似乎我可以使用amazon web services作为服务器和数据库。 然而,我遇到的大多数post都提到了Google App Engine或Heroku,并没有提及AWS。 这是因为我混合了概念,还是AWS有缺陷,我不知道? 您认为将AWS用作服务器和数据库是一个好主意,在使用AWS作为数据库时是否可以使用Heroku作为服务器,或者您是否有其他build议? 注:对于这个问题的轰炸抱歉,但这些都是相关的,我有点迷失在这个话题,所以我不得不问…

join连接和关系

我有一个数据库运行,但我还没有能够执行两个表之间的联接。 我已经做了另外两个表之间的连接,但是这个不起作用。 在我的db.js文件上,我build立了以下表之间的关系: db.diet.hasMany(db.meal, {as : 'Diet', foreignKey : 'dietId'}); 而在我的server.js文件,我试图build立这个查询: db.meal.findAll({ include : [db.diet], where : { dietId : idDiet } }).then(function (meals) { res.json(meals) }); 这给了我以下错误: ReferenceError: idDiet is not defined 我也尝试查询这样的饮食表: db.diet.findAll({ include :[db.meal], where : { idDiet : dietId } }).then(function (meals) { res.json(meals); }); 但是这也给我一个错误: ReferenceError: dietId is not defined […]

MongoDB查询返回空嵌套对象

我在MongoDB中有一个“对话”集合,我从NodeJS查询使用返回的数据来呈现对话的页面。 数据已经被正确地存储在数据库中,据我所知,当我查询它时,除了一对嵌套对象(即对话所属的两个用户)之外,所有事情都恢复正常。 以下是我在console.log对话中得到的内容(请注意“参与者”字段: [ { _id: 57f96549cc4b1211abadf28e, __v: 1, messages: [ 57f96549cc4b1211abadf28d ], participants: { user2: [Object], user1: [Object] } } ] 在Mongo shell中,参与者具有正确的信息 – 两个参与者的id和用户名。 这是架构: var ConversationSchema = new mongoose.Schema({ participants: { user1: { id: String, username: String }, user2: { id: String, username: String }, }, started: Number, messages: [ { type: […]