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

时间:2016-07-26 07:35:49

标签: sql ruby-on-rails mongodb mongoid

我在mongodb中提交了一个哈希,如:

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

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

1 个答案:

答案 0 :(得分: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 }})

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

希望它有所帮助!