内部のサブ・プロパティの更新:今すぐMongoDBは:私は以下のように見える構造を有するネストされた配列のドキュメント
course: { // course
id,
coursename,
sections: { // has an array of sections
section: {
id,
sectionname
cards: { // each section has an array of cards
card: {
id
cardname
}
}
}
}
}
を、私は、カードIDを与えられています。 cardIDが301であるとします。コースやカードが保存されているセクションについての詳細はありません。私はcardIDしか持っていない。カード名を「Test 1」から「Test 2」に更新したいと思います。
カードIDのみを指定してカードの名前を更新する方法についての情報を入力してください。また、cardIdのみを使用して1つのカードにアクセスする方法に関する情報を提供してください。
私は次のクエリを実行した場合:
db.course.find({"sections.cards.id" : ObjectId("5859517447c4286d0f0639ee")},
{"sections.cards.$":1,_id:0})
を全セクションオブジェクトは、単一のカードを返す代わりに返されます。 cardIdのみを使用して単一のカードにアクセスする方法に関する情報を提供してください。
私が持っている文書の例:
{
"_id" : ObjectId("58595041cfdc46100f92a985"),
"modelType" : "Course",
"name" : "c1",
"sections" : [
{
"id" : ObjectId("5859504dcfdc46100f92a986"),
"name" : "s1",
"cards" : [
{
"id" : ObjectId("58595057cfdc46100f92a987"),
"name" : "card1",
},
{
"id" : ObjectId("5859506ccfdc46100f92a988"),
"name" : "card2"
}
]
}
]
}
のみカードIDを使用してカードを更新する方法についての情報を提供してください。
カードの名前を変更したいとします。どのように達成するのですか?
何をしますか?あなたは例として文書を投稿できますか?どのプロパティがあなたの配列であり、あなたのオブジェクトであるかははっきりしていません。 – DennyHiu
@DennyHiu、私はサンプルドキュメントを追加しました。私はカードIDだけを使って特定のカードを手に入れたい。 –
@MaulikSonejiあなたは '$ elemMatch'を試しましたか? – Yogesh