我只想知道是否可以使用水线选择特定字段,下面给出了orientdb查询。
e.g.
select phone from user
我想使用此查询从用户顶点选择手机
userModel.find(phone)
.then(function(phonelist){
if(!phonelist)
console.log('msg: RECORD_NOT_FOUND');
else
console.log(phonelist);
.catch(function(err){ console.log('err: 'err'); });
答案 0 :(得分:27)
是的,可以,您只需要在搜索条件中添加select
,例如(假设您正在搜索ID为1的记录):
userModel.find({ select: ['phone'], id: 1 })
或者:
userModel.find({ select: ['phone'], where: { id: 1 } })
或者如果您想要所有记录,您不需要提供标准:
userModel.find({ select: ['phone'] })
这似乎没有记录在任何地方,但它应该。在版本0.11中,还可以通过执行model.pick('name', 'age')
:https://github.com/balderdashy/waterline/pull/952
答案 1 :(得分:4)
来源和更多细节 - https://stackoverflow.com/a/24170388/1392194
是的,它是可能的但不是select
,因为它仍处于开发阶段。但是有一种方法可以使用fields
实现它。
Model.find({ id: id }, {
fields: {
name: 1,
phoneNumber: 1
}
}).limit(1).exec(function(...) {};
这不会与findOne
合作。
答案 2 :(得分:2)
在Sails版本1中,他们增加了发送查询和投影到find()/ findOne()方法的规定。您可以简单地执行以下操作: Model.find({其中:{id:id},选择:['name','phoneNumber']})
在此处查找参考: https://sailsjs.com/documentation/reference/waterline-orm/models/find#?using-projection
答案 3 :(得分:1)
您可以使用 .select()方法
let phones = await userModel.find().select(['phone']);
.select()的反义词是 .omit()