0

我有一个名为login. 该文件包含以下内容:

  • 用户名

  • 密码

  • 性别

我有另一个名为的文档history,其中包含以下内容:

  • 用户名

  • 时间

我的历史文件username被引用到 login文件。使用该time字段,我将通过以下查询从历史文档中获取详细信息。

usersByHistory=models.history.objects(time=searchObj.time) 

使用上述结果,我将使用以下代码获取用户信息:

list=[]    
for user in usersByHistory :
   name = user.user_name.user_name
   usersList = login_info.objects(user_name=name)
   list.append(usersList)

通过执行上面的代码,执行时间非常高,我想在代码中避免这个for循环,并用mongoengine查询替换它,以尽量减少执行时间。有人请帮忙

4

1 回答 1

2

您可以进行in查询并提供用户数组: http: //docs.mongoengine.org/en/latest/guide/querying.html#query-operators

这是一个使用示例,scalar因为我们只需要一个用户名列表。

users_by_history = History.objects(time=searchObj.time).scalar('user_name')
LoginInfo.objects(user_name__in=users_by_history)

*我已经更新了类名和变量名以符合 pep8

于 2012-10-15T06:11:02.117 回答