检查JSON对象值是否包含短语 - django

时间:2018-06-12 07:00:39

标签: json django python-3.x firebase firebase-realtime-database

我有一个django项目。我将Firebase引入了项目。 Firebase已创建并以JSON格式返回对象。现在,我希望通过现有用户拥有一个搜索系统,并返回一个包含列表中所有存储的用户名值的对象,然后显示所有结果。

以下是Firebase JSON对象格式的示例:

OrderedDict([  
   ('info',
   {  
      'bio':'jogn from the office',
      'company':'MySplit',
      'dob':'1993-03-23',
      'first_name':'jim',
      'gender':'M',
      'last_name':'helpert',
      'phone':'+19515394856'
   }   ),
   ('location',
   {  
      'city':'Mis Viejo',
      'state':'CA',
      'street':'27806 cheller',
      'zip_code':98892
   }   ),
   ('status',
   {  
      'active':'1',
      'group':'dev',
      'premium':'1'
   }   ),
   ('username',
   'jimhelpert'   )
])

我想搜索并返回包含jim

所有用户名的对象

我无法找到如何使用包含短语...

的用户名返回所有对象的查询

这是view.py:

        user_id = request.session['uid']
        user_profile = database.child('users').child(user_id).child('profile').get()
        print(user_profile.key())
        print(user_profile.val())
        print(user_profile)
        print(type(user_profile))
        parameters = {
            'user_profile':user_profile.val(),
        }
        return render(request, 'users/user_home.html', parameters)

1 个答案:

答案 0 :(得分:0)

以下是Firebase documentation关于搜索的说法:

  

Cloud Firestore不支持本机索引或搜索文本字段   在文件中。

接着说:

  

此外,下载整个集合以搜索客户端字段是不切实际的。

如果您的数据集非常非常小,而且您确信它永远不会增长,那么您可以放弃这种方法。

但是,我在文档中提出了使用专用搜索服务的建议。

  

要启用Cloud Firestore数据的全文搜索,请使用Algolia等第三方搜索服务。

或者,您可以考虑使用允许此类查询的SQL数据库。