0

今日は$set、DBRef$dbをコレクションにしようとしています。

しかし、サーバーは「not okForStorage」と言うので、操作は失敗します。

ps。私のmongodバージョンは2.2です

{
  "ts" : ISODate("2013-01-16T14:05:42.814Z"),
  "op" : "update",
  "ns" : "mydb.coll1",
  "query" : {
    "_id" : NumberLong("928686353793211381")
  },
  "updateobj" : {

    "$set" : {
    "ref" : {
      "$db" : "db2",
      "$ref" : "coll2",
      "$id" : NumberLong("928686353793211381")
      }
    }
  },
  "nscanned" : 1,
  "keyUpdates" : 0,
  "numYield" : 0,
  "lockStats" : {
    "timeLockedMicros" : {
      "r" : NumberLong(0),
      "w" : NumberLong(200)
    },
    "timeAcquiringMicros" : {
      "r" : NumberLong(0),
      "w" : NumberLong(5)
    }
  },
  "exception" : "not okForStorage",
  "exceptionCode" : 12527,
  "millis" : 0,
  "client" : "10.168.89.9",
  "user" : ""
}
4

1 に答える 1

1

docsによると、DBRef のフィールドの順序は重要です。refしたがって、オブジェクトを次のように並べ替える必要があります。

"ref" : {
  "$ref" : "coll2",
  "$id" : NumberLong("928686353793211381"),
  "$db" : "db2"
}
于 2013-01-16T15:07:00.277 に答える