我想提出这样的请求:
User.find().exec(function(){});
我知道我可以在模型中使用 toJSON
但是我不喜欢这种方法,因为有时我需要不同的参数。例如,如果它是登录用户,我将返回他们的电子邮件和其他参数。但是,如果对相同数据的请求是由不同的用户发出的,则它将不包括电子邮件和较小的参数子集。
我也尝试过使用:
User.find({}, {username:1}) ...
User.find({}, {fields: {username:1}});
但运气不好。如何指定我需要返回的字段?
最佳答案
所以实际上找到了一个奇怪的解决方法。 fields
参数将起作用,只要您传递其他参数,例如 limit
或 order
:
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/