node.js - 在 Node.js/Waterline 中指定返回字段?

标签 node.js express sails.js waterline

我想提出这样的请求:

User.find().exec(function(){});

我知道我可以在模型中使用 toJSON 但是我不喜欢这种方法,因为有时我需要不同的参数。例如,如果它是登录用户,我将返回他们的电子邮件和其他参数。但是,如果对相同数据的请求是由不同的用户发出的,则它将不包括电子邮件和较小的参数子集。

我也尝试过使用:

User.find({}, {username:1}) ...
User.find({}, {fields: {username:1}});

但运气不好。如何指定我需要返回的字段?

最佳答案

所以实际上找到了一个奇怪的解决方法。 fields 参数将起作用,只要您传递其他参数,例如 limitorder:

User.find({}, {fields: {username:1}}).limit(1);

请注意,这不适用于 findOne 或任何单一返回类型。这意味着在您的结果回调中,您需要执行 user[1]。

当然,另一种选择是在退出时删除数据,如果您使用大量项目,这会很痛苦。因此,如果这适用于您可能实际设置 limit(20) 的大型列表,并且对于单个项目,您可以明确返回 paras 直到 select() 可用。

关于node.js - 在 Node.js/Waterline 中指定返回字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24068176/

相关文章:

javascript - 方括号中的函数声明在 Node.js/Javascript 中如何工作?

mysql - 我什么时候应该使用 mongoDB 而不是关系数据库

node.js - 为什么 Angular Universal 中的 res.render 需要这么长时间?

node.js - Sails.js 的事务性 SQL

javascript - 将 Sails JS 部署到 Heroku 时找不到图像

javascript - 如何更新附加 div 的数量计数

node.js - 如何使用nodejs的fs将文件写入父文件夹?

node.js - $.getJSON 出现 404 错误,其中 url 和 [object%20Object] 错误,这是怎么发生的?

javascript - 明确存在的功能被识别为未定义

javascript - Sails JS + Angular JS : The routing