0

我的要求是为每个客户存储一个(位置 ID + BITMAP)列表。示例行如下:

  • 键:客户 ID
  • 值:<(位置 1,位图 1),(位置 2,位图 2),...,(位置 N,位图 N)>

在哪里

  • “位图 k”包含客户访问该位置 k 的日期的历史记录。

Value 中元素的数量可能因客户而异,可能是 0,有些可能是 100。我想知道如何将这些数据存储在 MongoDB 中,以便以下操作有效:

  1. 重置所有行的所有值对中的特定 BIT
  2. 为一行的某些值对更新特定的 BIT

查询 2 的示例如下:

  • 行键:客户 A
  • 行值:<(Loc 1,BITWISE 1),(Loc 2,BITMASK 2),(Loc 3,BITMASK 3)>
  • 查询:使用 Key = 'Client A' set BIT # 8 for Loc IN (Loc 1, Loc 3) 更新行

最终,我想运行一个 map-reduce 查询,它应该能够迭代每个行值对。

4

1 回答 1

0

这样的事情呢?

{
    "_id" : ObjectId("51da846d9c34549b45432871"),
    "client_id" : "client_a",
    "values" : [
        {
            "location" : "loc_1",
            "bitmap" : [
                "000...",
                "111..."
            ]
        }
    ]
}

db.collection.find( { client_id: 'client_a', 'values.location': 'loc_1' } )
于 2013-07-08T07:35:54.410 回答