小编Kum*_*ran的帖子

批量更新Mongodb中匹配子文档的数组

我在 Mongodb 3.6 上运行。以下是我的文档的结构,其中存储产品列表的月度费率信息:

{
  "_id": 12345,
  "_class": "com.example.ProductRates",
  "rates": [
    {
      "productId": NumberInt(1234),
      "rate": 100.0,
      "rateCardId": NumberInt(1),
      "month": NumberInt(201801)
    },
    {
      "productId": NumberInt(1234),
      "rate": 200.0,
      "rateCardId": NumberInt(1),
      "month": NumberInt(201802)
    },
    {
      "productId": NumberInt(1234),
      "rate": 400.0,
      "rateCardId": NumberInt(2),
      "month": NumberInt(201803)
    },
    {
      "productId": NumberInt(1235),
      "rate": 500.0,
      "rateCardId": NumberInt(1),
      "month": NumberInt(201801)
    },
    {
      "productId": NumberInt(1235),
      "rate": 234,
      "rateCardId": NumberInt(2),
      "month": NumberInt(201803)
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

对关联费率卡的任何更改都会将更新传播到“费率”数组中的多个子文档。

以下是需要对上述文档应用的更改

{
    "productId" : NumberInt(1234), 
    "rate" : 400.0, 
    "rateCardId": NumberInt(1),
    "month" : NumberInt(201801)
}, 
{
    "productId" …
Run Code Online (Sandbox Code Playgroud)

mongodb mongodb-query

8
推荐指数
1
解决办法
5160
查看次数

如何使用带数组过滤器的过滤位置运算符应用更新

我在 Mongodb 3.6 上运行,使用 mongo 驱动程序 3.4.3 和 spring 数据 mongo 1.5.10。以下是我的文档结构

{
  "_id": 12345,
  "_class": "com.example.ProductRates",
  "rates": [
    {
      "productId": NumberInt(1234),
      "rate": 100.0,
      "rateCardId": NumberInt(1),
      "month": NumberInt(201801)
    },
    {
      "productId": NumberInt(1234),
      "rate": 200.0,
      "rateCardId": NumberInt(1),
      "month": NumberInt(201802)
    },
    {
      "productId": NumberInt(1234),
      "rate": 400.0,
      "rateCardId": NumberInt(2),
      "month": NumberInt(201803)
    },
    {
      "productId": NumberInt(1235),
      "rate": 500.0,
      "rateCardId": NumberInt(1),
      "month": NumberInt(201801)
    },
    {
      "productId": NumberInt(1235),
      "rate": 234,
      "rateCardId": NumberInt(2),
      "month": NumberInt(201803)
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我正在尝试对数据进行批量更新,如下所示

db.rates.update(
  { "_id" : 1234 },
  { $set: …
Run Code Online (Sandbox Code Playgroud)

java mongodb spring-data-mongodb mongo-java-driver

4
推荐指数
1
解决办法
4627
查看次数