【问题标题】:Check to see if a JSON object value contains a phrase - django [duplicate]检查 JSON 对象值是否包含短语 - django [重复]
【发布时间】:2018-11-21 11:46:49
【问题描述】:

我有一个 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)

【问题讨论】:

  • 您尝试了哪些方法,哪些方法不适合您?
  • 我一直在网上寻找样品或指南,但我什至找不到样品。我不知道它会是什么样子。我只需要查询的样例...
  • 你应该看看this answer。它适用于 IOS,但同样适用于其他语言,firebase 实时数据库中没有包含查询。
  • 我阅读了您链接的答案。所以 JSON 对象上没有包含过滤器。有什么方法可以扫描 JSON 查询中的对象并检查特定键值对是否包含字符串...不一定,字符串包含...
  • 是否可以创建任何类型的系统,该系统采用带有多个用户对象的 JSON 对象并通过它们进行搜索,例如社交应用程序的搜索系统。在 json 中

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


【解决方案1】:

以下是Firebase documentation 对搜索的看法:

Cloud Firestore 不支持原生索引或搜索文本字段 在文档中。

它接着说:

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

如果您的数据集非常非常小并且您确定它永远不会增长,那么您可以使用这种方法。

但是,我赞同文档中关于使用专用搜索服务的建议。

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

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

【讨论】:

  • 我认为这是 Firebase 集成中唯一给我带来麻烦的部分。我应该根本不使用 Firebase,还是应该只使用 postgresql 数据库来解决我遇到的这个特定问题。我现在不知道该怎么做
  • 这真的取决于你更喜欢什么,Firebase + Search Service 或 PostgreSQL。值得考虑的方面是 Django 确实是为 SQL 数据库量身定制的,如果使用 Firebase 等 NoSQL 数据库,您可能会错过 Django 的许多功能。
猜你喜欢
  • 2017-03-19
  • 2015-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-09
  • 2019-08-24
  • 2013-10-13
  • 1970-01-01
相关资源
最近更新 更多