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

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

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

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

【问题讨论】:

  • hash keys(例如“5742a6af744f6b0dcf0003d1”)是相同还是不同?
  • @Emu 键不同

标签: sql ruby-on-rails mongodb mongoid


【解决方案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 }})

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

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 2015-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-16
    相关资源
    最近更新 更多