2
mongoで新しいものがあり、これまで使用していない問題はありません。私がこれに執着するまで。私は、配列内の配列にドキュメントをプッシュする必要があります。下のjsonを参照できます。Mongoが配列内に配列を配列する
{
'user_id':'{1231mjnD-32JIjn-3213}',
'name':'John',
'campaigns':
[
{
'campaign_id':3221,
'start_date':'12-01-2012',
'messages':
[
{
'message_id':211134,
'email':'[email protected]'
}
]
},
{
'campaign_id':3222,
'start_date':'13-01-2012',
'messages':
[
{
'message_id':315521,
'email':'[email protected]'
}
]
}
]
}
1つのドキュメントをキャンペーンの配列のメッセージ配列に(注文に関係なく)プッシュしたいとします。つまり、新しい文書をメッセージの配列に追加する必要があります。これらのメッセージはすべて、別の配列内またはユーザーごとのキャンペーンからのものです。私のコードはこのようになるので、私はPythonを使用しています。
query = {"user_id" : "{1231mjnD-32JIjn-3213}", "campaigns.campaign_id": 3221}
message = {"message_id":4213122, "email":"[email protected]"}
op = {"$push" : {"campaigns.messages":message}}
mongo.TestDatabase.members.update(query, op)
実行時にエラーはありません。しかし、文書には変更がないようです(更新は行われません)。私はここで間違って何をしていますか?
感謝を:あなたはを通じて特定のキャンペーンのメッセージ配列にプッシュすることができ、言っ
。それはうまくいった。はい、私はあなたに同意します、アレイ内部の配列は悪い考えです。今私のコードから見ることができます。ちょっと面倒です。 :( –
はい、もっと重要なのは、複数の位置演算子($)を使用できないため、配列全体を上書きせずにメッセージを編集することはできません。ここで修正してくださいhttps://jira.mongodb.org/browse/SERVER- 831 –
ああ、これは今私が探しているものです。私は、複数の位置演算子を使用する方法があるので、私はそれを使用できないことを確認します。文字列フィールド名[$]コード:13048 503ms。ありがとう。:) –