ランタイム コレクションの一部である次のドキュメントを検討してください。
{
"entity_id" : 10,
"features" : [
{
"10" : "Test System 2"
},
{
"20" : "System 2 Description"
},
{
"180" : ISODate("2013-12-25T18:19:40.589Z")
},
{
"190" : ISODate("2013-12-25T18:19:40.589Z")
}
],
"_id" : ObjectId("52bb21bc8a2ebdc01c000001")
}
私の目標は、キー「20」を持つ「features」配列の要素の値を更新することです。これが私が試したことです(mongoシェルで):
db.Runtime.findAndModify({ "query" : {"_id": "52bb21bc8a2ebdc01c000001"}, "update" : {$set : {"features.$.20":"Updated Description"}}} );
db.Runtime.findAndModify({ "query" : {"_id": "52bb21bc8a2ebdc01c000001"}, "update" : {$set : {"features['20']":"Updated Description"}}} );
db.Runtime.findAndModify({ "query" : {"_id": "52bb21bc8a2ebdc01c000001"}, "update" : {$set : {"features[1]":"Updated Description"}}} );
すべてのインスタンスで、シェルは null を出力し、データには何も起こりません。したがって、主な問題は、もちろん、私のコード スニペットの何が問題なのかということです。また、その「null」はどのように解釈されるはずですか? そして、手がかりを見つけることができるモンゴシェルのログのようなものはありますか? 助けてくれて本当にありがとうございます!