在动态查询的地方构建环回
build loopback where query dynamicaly
我正在尝试动态构建以下查询对象
此代码适用于硬编码对象和 returns 数据
var query = {where: {or: [{field1: /franklin/i}, {field2: /franklin/i}]}}
myMongoLoopbackModel.find(query,
function(err, response) {
if (err) cb(new Error('Something went wrong!'));
cb(null, response);
});
查询正在尝试通过环回 api 搜索 mongodb,其中 field1 或 field2 包含字符串 "franklin",并且该字符串由用户输入提供。
这是不起作用的动态代码。
var userinput= new RegExp(userform.inputvalue,'i');
var query= {where: []};
query['where'].push({or: [
{field1: userinput},
{field2: userinput}
]});
myMongoLoopbackModel.find(query,
function(err, response) {
if (err) cb(new Error('Something went wrong!'));
cb(null, response);
});
当我在第一个控制台日志中工作时,查询我得到:
log working: { where: { or: [ [Object], [Object] ] } }
当我控制台记录第二个非工作查询时,我得到:
log non-working: { where: [ { or: [Array] } ] }
我研究了其他类似的帖子,并从这篇帖子中得出了我的方法。
如果您能提供任何帮助,我将不胜感激。
谢谢。
where
子句不应为数组。重写您的代码:
var userinput= new RegExp(userform.inputvalue,'i');
var query = {where: {or: [{field1: userinput}, {field2: userinput}]}}
myMongoLoopbackModel.find(query,
function(err, response) {
if (err) cb(new Error('Something went wrong!'));
cb(null, response);
});
我正在尝试动态构建以下查询对象
此代码适用于硬编码对象和 returns 数据
var query = {where: {or: [{field1: /franklin/i}, {field2: /franklin/i}]}}
myMongoLoopbackModel.find(query,
function(err, response) {
if (err) cb(new Error('Something went wrong!'));
cb(null, response);
});
查询正在尝试通过环回 api 搜索 mongodb,其中 field1 或 field2 包含字符串 "franklin",并且该字符串由用户输入提供。
这是不起作用的动态代码。
var userinput= new RegExp(userform.inputvalue,'i');
var query= {where: []};
query['where'].push({or: [
{field1: userinput},
{field2: userinput}
]});
myMongoLoopbackModel.find(query,
function(err, response) {
if (err) cb(new Error('Something went wrong!'));
cb(null, response);
});
当我在第一个控制台日志中工作时,查询我得到:
log working: { where: { or: [ [Object], [Object] ] } }
当我控制台记录第二个非工作查询时,我得到:
log non-working: { where: [ { or: [Array] } ] }
我研究了其他类似的帖子,并从这篇帖子中得出了我的方法。
如果您能提供任何帮助,我将不胜感激。 谢谢。
where
子句不应为数组。重写您的代码:
var userinput= new RegExp(userform.inputvalue,'i');
var query = {where: {or: [{field1: userinput}, {field2: userinput}]}}
myMongoLoopbackModel.find(query,
function(err, response) {
if (err) cb(new Error('Something went wrong!'));
cb(null, response);
});