如何查询 mongoid 中的所有哈希值?

Posted

技术标签:

【中文标题】如何查询 mongoid 中的所有哈希值?【英文标题】:how to query on all hash values in mongoid? 【发布时间】:2016-07-26 07:35:48 【问题描述】:

我在 mongodb 中有一个哈希文件,例如:

Record document   
cells: 
            "5742a6af744f6b0dcf0003d1"=>"1",
            "5742a6af744f6b0dcf0003d2"=>"12"
            "5742a6af744f6b0dcf0003d3"=>"12"
        

如何查询 cells.values 等于 12 的单元格?

【问题讨论】:

hash keys(例如“5742a6af744f6b0dcf0003d1”)是相同还是不同? @Emu 键不同 【参考方案1】:

您不能在 MongoDB 中执行该查询。您需要将集合数据格式化如下:


  "_id": ObjectId("5406e4c49b324869198b456a"),
  "cells": [
     "number": "5742a6af744f6b0dcf0003d1", "value": 1 ,
     "number": "5742a6af744f6b0dcf0003d2", "value": 12 ,
     "number": "5742a6af744f6b0dcf0003d3", "value": 12 
  

然后你可以像这样查询:

db.collection_name.find('cells.value':  $eq: 12 )

您的数据格式实际上是“反模式”。这就是不可能的原因。

希望对你有帮助!

【讨论】:

以上是关于如何查询 mongoid 中的所有哈希值?的主要内容,如果未能解决你的问题,请参考以下文章

RedisRedis 哈希 Hash 键值对集合操作 ( 哈希 Hash 键值对集合简介 | 查询操作 | 增加操作 | 修改操作 )

Impala 中的 fnv_hash() 与 oracle 哈希值

哈希索引

Mongoid 按值或默认值查询

如何在perl中删除哈希值中的重复值?

iOS中的哈希表