sql >> データベース >  >> NoSQL >> MongoDB

要素をネストされた配列マングースnodejsにプッシュします

    クエリでは、位置演算子を使用しています ($記号)1つの特定のビデオを_idでローカライズし、1つのアイテムをレポートにプッシュします。

    問題は、指定したパス(seasons.episodes.videos。$。reports)が原因で、MongoDBが更新しようとしているビデオを認識しないことです。 )他の2つの配列(シーズンとエピソード)が含まれています。

    ドキュメントに記載されているように、この演算子は2回以上使用できません

    この制限により、状況が複雑になります。レポートは引き続き更新できますが、外部配列の正確なインデックスを知る必要があります。したがって、次の更新が実用的な例になります:

    db.movies.update({'seasons.episodes.videos._id': data._id}, {$push: {'seasons.0.episodes.0.videos.$.reports': data.details}})
    

    または、node.jsでこのドキュメントの大部分を更新するか、テクノロジーの制限を念頭に置いてスキーマ設計を再考することができます。




    1. MongoDB-Queryでキャストすることは可能ですか?

    2. Nodejs / Express-アプリの起動:express.createServer()は非推奨です

    3. MongoDBでカスタムオブジェクトIDを作成する

    4. Powershellを使用して複雑なクエリMongoDBを作成する方法