是否可以使find()和findOne()方法只返回模式字段
Is it possible to make find() and findOne() method return only schema fields
我在文档中和网上搜索了一个选项,但没有找到任何答案,所以让我们来问这个问题。
为什么要运行以下代码:
var accountSchema = mongoose.Schema({
id : { type:Number, unique:true },
login : { type:String, unique:true, index:true },
password : String,
usedBySession : String
});
var account = mongoose.model('Account', accountSchema);
account.findOne({id:1}).exec()
.then(function(result){
console.log(result);
},function(err){
throw err;
});
我得到所有字段(使用_id
),而不是只得到我的模式字段?服务器响应如下。
{"__v":0,"_id":"538deecb900f64d43163759a","id":1,"login":"dbyzero","password":"f71dbe52612345678907ab494817525c6"}
如果没有选项,那么清除响应的最干净的方法是什么?
通过以下方式排除不必要的字段:
account.findOne({id: 1}, '-_id -__v -password') // exclude _id, __v, password fields
.exec()
.then(success, failure);
更多信息
或在模式中使用select
选项
var yourSchema = new Schema({
secure: {
type: String,
select: false // 'secure' field will not be selected by default
},
public: String
});
更多信息
相关文章:
- MongoDB-通过比较集合和对象的数组来返回现有字段的数组
- Model中的Typeahead返回空值以形成输入字段
- AngularJS-工厂中promise ID字段的返回值
- 用户提供的字段在解析登录时不返回
- 如何从所有要素返回单个字段
- ASP:代码隐藏的字段变量在从更新面板中的服务器返回时丢失值
- 即使对于非空窗体,FormData对象也返回空.对于具有2个输入字段的表单,
- 使用jquery UI next按钮提交输入字段值,php将返回结果
- 返回不同的字段名称Laravel
- 我的单选按钮没有从foreach循环中获得值,表单验证返回'必填字段'即使已检查
- 货币字段上的 parseInt 返回 NaN
- 仅返回嵌入文档列表中的某些字段
- javascript:input字段在隐藏时返回默认值
- 将字符串返回到类型为“0”的输出字段;数字“;针对用户错误javascript
- 是否可以使find()和findOne()方法只返回模式字段
- 循环遍历所有字段,如果任何一个字段的验证失败jquery,则返回false
- 在检查选中哪个按钮并从字段中获取值后返回值
- 将信息结果返回到多个输入字段
- 有条件地在返回语句中包含 json 字段
- 从MongoDB文档中返回字段