Tag: 水线

Sails.js一对多协会

使用Sails.js文档页面给出的例子,我得到以下错误:“最大调用堆栈大小超过错误”。 items.find().populate("user", {name:givenName}).exec(function(err, response) { console.log(response); } 问题是,当我用wireshark查看时,数据库上的查询尝试查找每个用户(而且数据库很大),但是没有进行任何连接。 items +———–+————–+——+—–+ | Field | Type | Null | Key | +———–+————–+——+—–+ | id | int(6) | NO | PRI | | name | varchar(255) | NO | | +———–+————–+——+—–+ user +———–+————–+——+—–+ | Field | Type | Null | Key | +———–+————–+——+—–+ | id | int(6) | […]

私人领域与SQL查询

我最近更改了SQL数据库中的查询 Model.findOne().populate("Model2").exec(function(err, result) { }) 至 : Model.query(sqlQuery, parameters, function(err, result) { }) 我更改查询的原因是性能问题:使用第二种方法比第一种方法(当您连接表时)要快得多。 我的问题是:使用水线语法,我能够只检索我想要的元素(在模型中定义的元素),但使用查询方法(“Select * from model …”)给我的结果我问到数据库,但我想能够过滤在我的模型中定义的字段。 那可能吗?。

使用MariaDB批量插入和删除Waterline / Sails.js

在我的Sails.js应用程序中,我有一个表auctions ,它包含从Battle.net API最后一次转储所收到的数据。 因此,每当一个realm的新的转储到达时,我需要清除所有与这个realm相关的行,然后插入新的领域。 我可以这样做: 一次性发送(使用destroy()发送一个查询,另一个使用自身的转储); 或者小批量(按item分组,然后用realm和项目destroy()所有logging,然后插入新logging)。 我目前正在使用async.forEachOfSeries来完成上述的小批量操作,但是当前的负载(每次运行作业时都会插入45k条logging),速度太慢了,这并不考虑是否需要更新item工具提示logging。 如果我试图一次插入它们,Node.js会启动分页并挂起,或者MariaDB比Waterline允许的时间要长。 我怎样才能更加可扩展地解决这个问题? 会async.queue或async.cargo工作?

Nodejs混合了asynchronous函数和promise

所以我有一些帮助服务的应用程序,使它更容易创build和获得复杂的模型。 其中一个是 getMerits: function(profileId, limit){ return async.waterfall([ function(callback){ Merit.find({employeeProfile: profileId}).then(function(merits){ callback(null, merits); }); }, function(merits, callback){ async.forEach(merits, function(item, loop_callback){ MeritIndex.findOne({id: item.index}).then(function(meritIndex){ merits[merits.indexOf(item)].index = meritIndex; loop_callback(); }); }, function(err, results){ callback(null, merits); }); } ], function(err, results){ return results; }); } 麻烦的是当我试图调用这个函数来得到结果(插入价值指数列表)我不能找出正确的方法来从asynchronous瀑布返回结果: async.forEach(profiles, function(item, loop_callback){ MeritService.getMerits(item.id, 5).exec(function(err, merits){ console.log(merits) profiles[profiles.indexOf(item)].merits = merits; loop_callback(); }); // MeritService.getMerits(item.id, […]

SailsJS – Mongofind哪里或者哪个条件协会(一对一)

我有一个模型: module.exports = { schema: true, attributes: { friend1: { model: "User", //Logged in User required: true }, friend2: { model: "User", //Profile Viewing User to whom I can send friend request required: true }, status: { type: "int", defaultsTo: "0" } } }; 现在我试图检查是否有任何用户是我的朋友或以下书面filter,似乎不工作! Friend.find().where({ or: [ { friend1: user_id, friend2: fried_id }, { […]

启动js -model结果集variables作用域

有人可以向我解释为什么我不能将booksCountvariables保存到用户json对象吗? 这是我的代码 for(var user in users){ Books.count({author: users[user]['id']}).exec(function(err, count){ users[user]['booksCount']=count; }); } return res.view('sellers', {data: users}); Where用户是从User.find()方法直接产生的表中的用户列表。 用户是模型。 现在,如果我尝试在for循环内打印用户[user] ['booksCount'],它工作正常。 但是当它超出for循环时,variables消失在空气中。 控制台打印“未定义”外循环。

帆0.10和多对多关联 – 获取所有相关的数据,而不是第一个

我有2个模型与多对多关联。 我的代码关联这两个模型运行良好(它创build一个新的集合item_languages__language_items与相应的文件里面)。 但是,我无法获得特定项目的所有相关数据(语言)。 我正在使用MongoDB。 // Item.js module.exports = { schema: true, autoPK: false, attributes: { uuid: { type: 'string', primaryKey: true, unique: true, required: true, uuidv4: true }, languages: { collection: 'language', via: 'items', dominant: true } } } // Language.js module.exports = { schema: true, autoPK: false, attributes: { code: { type: 'string', primaryKey: […]

如何在sailjs中创build一个新的模型实例?

我想从模型中创build一个未持久的新实例,填充一些属性并将其作为来自控制器操作的JSON响应发回。 在rails ,使用Model.new获取模型的新实例非常简单,但是如何使用Model.new或sails.js ? 如果您熟悉rails, Model.new ->创build一个模型的新实例。 我怎么能在Sails.JS中做到这一点? Model.create ->创build(已经)持久的模型的新实例。 我已经检查过这个文件,但是我找不到任何有关这方面的信息。

多线模式的水线交易

我正在使用Sails waterline mysql适配器来pipe理My-SQL数据库, 我在压制期间有3个模型我必须在Seire中执行查询,但如果最后一个失败,我必须做一个回滚。 水线和交易是可能的。

如何使用Sails.js / Waterline以多对多的方式将模型关联到自身?

我有一个sails.js项目,我需要一个模型连接到自己多达很多,这是可能的吗?