【发布时间】:2019-09-18 10:57:00
【问题描述】:
我的查询有问题,我正在尝试对多个字段使用 find contains 查询,这是我的代码。我将不胜感激。
def loadContact(search):
myQuery = {'username' : {'$ne' : session['username']},\
'$and' : [{'$or' : [\
{'username' : '/.*' + search + '.*/i'},\
{'surname' : '/.*' + search + '.*/i'},\
{'firstName' : '/.*' + search + '.*/i'},\
{'email' : '/.*' + search + '.*/i'},\
{'company' : '/.*' + search + '.*/i'}]}]}
cursor = db.users.find(myQuery)
payload = []
content = {}
for doc in cursor:
#this is mocked up code for this question so you can see more clearly
content = {'username' : cursor[0], 'firstName' : cursor[1]}
payload.append(content)
return payload
值得注意的是循环不会迭代,如果不迭代,循环的内容现在并不重要。
因为我需要任何字符串值的具体值,这里是任何字符串的具体值:
session['username'] = "username"
loadContact(): loadContact("string")
【问题讨论】:
-
你的代码真的是这样缩进的吗?
-
是的,我刚刚缩短了循环内容,但所有字段都会这样
-
要获得帮助,您需要包括以下内容:1) 传递给函数的
search的值 2) 当您认为会返回时未返回的文档示例。 3)session['username']的值 -
搜索是一串文本,如“person”或“matt”,用户名是“mfarrell1”或任何类型的用户名
-
不,我的意思是一个具体的例子,我们可以重现。