因此,我们假设我们使用的是以下简单模式:
const phoneRegex = require('./phoneRegex');
const Schema = require('mongoose').Schema;
const PersonSchema = new Schema({
firstName: String,
lastName: String,
phone: {
type: String,
regex: phoneRegex,
},
Address: {
street1: String,
street2: String,
city: String,
state: String,
zip: String,
}
});
module.exports = Person = require('mongoose').model('Person', PersonSchema);
,并且我希望对猫鼬进行预设调用以查找人员列表,但是我希望可以选择限制从数据库返回的内容。我知道我可以使用模型的select()
函数,但是当您提供一个空字符串时会发生什么? (即Person.find(options).select('');
)
我的预定义函数如下:
//sample options object.
const options = {
firstName: {
$regex: '^John',
$options: 'i',
},
};
const Person = require('./person');
const fetchAll = (Options, select = '') => {
return Person.find(Options).select(select);
};
我知道我想传递属性名称以选择要返回的属性,但是空的选择字符串是否与“ SELECT NONE”相同?
答案 0 :(得分:1)
通读the docs后,看来_id
字段之外的所有字段都将被忽略,因为默认情况下已包含该字段。您是在说include nothing, exclude everything else
。
我目前没有猫鼬设置可以对此进行测试,因此更多是有根据的猜测。