ネイティブmongodbドライバを使用してノードJSでコマンドを作成して、ドキュメントオブジェクト内のオブジェクトからキー値のペアを削除しようとしています。MongoDBノードJS - ドキュメントオブジェクト内のオブジェクトからエントリを削除する
私は次の形式でのMongoDBのコレクションを持っている:
{
"name" : "PrakashPM"
"data" : {
"Jan-2017" : "2,3,1",
"Dec-2016" : "1,2,0",
"Nov-2016" : "9,9,9"
}
},
{
"name" : "Valavan"
"data" : {
"Jan-2017" : "1,1,1",
"Dec-2016" : "3,3,3",
"Nov-2016" : "9,9,9"
}
}
私の目標は、 "12月-2016" を削除することです:内部で "1,2,0" "名前": " PrakashPM」
マイコード:
var mongoName = 'PrakashPM';
var mongoDate = "'data'.'Dec-2016'";
// TRIALS
// var mongoDate = "data.'Dec-2016'";
// var mongoDate = "data.Dec-2016";
var mongoVal = "'1,2,0'";
// TRIALS
// var mongoVal = "1,2,0";
mycollection.update({ name: mongoName },
{ $unset: {mongoDate : mongoVal} }
);
注:私は上記のオペラをやっていますPUTリクエスト機能の内部にあります。
入力値(mongoDate、mongoVal)にはさまざまな方法(トライアル)を試しましたが、私は以下の結果を得ることができません。
また、キーを使用するだけで、キー値ペアのエントリを削除することはできますか? (すなわち、この場合、{$解除:{mongoDate}}またはそのような何か)
期待される結果:
{
"name" : "PrakashPM"
"data" : {
"Jan-2017" : "2,3,1",
"Nov-2016" : "9,9,9"
}
},
{
"name" : "Valavan"
"data" : {
"Jan-2017" : "1,1,1",
"Dec-2016" : "3,3,3",
"Nov-2016" : "9,9,9"
}
}
'req.body'コンテンツのサンプルをさらに提供できますか?特に 'req.body.timerData'と' req.body.time'の違いは何ですか?あなたのコードで 'timerName'とは何ですか? –
すべての混乱のために申し訳ありません。 @サンタヌス私は適切な値で質問を編集しました。 'find({name:mongoName}) 'を使ってレコードを取得できます。問題は$ unset条件にあるか、最初の引数で追加のクエリになる可能性があります。 – Mikki
下記の返信をご覧ください。あなたの問題を明らかにし、解決策を提示しました。 –