Node.js express restify mongoose查询多属性
问题:Node.js express restify mongoose查询多属性,node.js,mongodb,angular,express,mongoose,Node.js,Mongodb,Angular,Express,Mongoose,问题: let regex = '{"title":{"$regex":"(' + text + ')"}}'; let regex = '{"title":{"$regex":"(' + text + ')"}, "content":{"$regex":"(' + text + ')"}}'; 我试图从angular2向我的nodejs服务器发送一个查询,使用该查询将搜索多个属性 我拥有的(有效): let regex = '{"title":{"$regex":"(' + text +
let regex = '{"title":{"$regex":"(' + text + ')"}}';
let regex = '{"title":{"$regex":"(' + text + ')"}, "content":{"$regex":"(' + text + ')"}}';
我试图从angular2向我的nodejs服务器发送一个查询,使用该查询将搜索多个属性
我拥有的(有效):
let regex = '{"title":{"$regex":"(' + text + ')"}}';
let regex = '{"title":{"$regex":"(' + text + ')"}, "content":{"$regex":"(' + text + ')"}}';
我尝试/想要的(无效):
let regex = '{"title":{"$regex":"(' + text + ')"}}';
let regex = '{"title":{"$regex":"(' + text + ')"}, "content":{"$regex":"(' + text + ')"}}';
在中,没有2+属性的示例
问题:
let regex = '{"title":{"$regex":"(' + text + ')"}}';
let regex = '{"title":{"$regex":"(' + text + ')"}, "content":{"$regex":"(' + text + ')"}}';
这甚至可以通过一个查询实现吗?如果不是,我如何才能最好地解决这个问题
编辑:
如果没有该库,您也会对解决方案感到满意,但如果它仍然包含一个查询,那么这将是最好的
2。编辑:
下面是我调用以获取数据的完整函数(不起作用的示例):
尝试使用ES6模板文本生成字符串
您可以使用MongoDB的标准查询条件/条件语法 根据您的要求使用
$和
或$或
运算符:
{ $and: [{"title": {"$regex": "(' + text + ')"}}, {"content": {"$regex": "(' + text + ')"}}] }
{ $or: [{"title": {"$regex": "(' + text + ')"}}, {"content": {"$regex": "(' + text + ')"}}] }
它如何回答/解决OP提出的问题?第二个问题会发生什么?没有数据?错误?错误,无效查询:/n您传递的正则表达式字符串是什么?我可以将其放入URL中吗?见我的2。编辑以澄清问题我不明白您将此放在URL中是什么意思我认为您在查询中(在填充和查询参数之间)缺少了一个和。它应该是
返回this.http.get(`${this.apirl}/post?populate=${JSON.stringify(populate)&${query}`,{headers}).map((response:response=>response.JSON())代码>我通过使用JSON
和JSON.stringify(object)
解决了这个问题。