2D配列行全体を$ pull-マングース

user6680

私がすることができるよ$addToSet、それは重複には問題を作成しないことなく、2次元配列が、私は経由して私のリストから項目を削除したい場合は$pull、それはMongoDBのドキュメントから行を削除することはありません。2D配列は次のように構成されています。

inviteGroup: {
    biddingUserId: { type: String, lowercase: true, trim: true },
    username: { type: String, lowercase: true, trim: true }
  },

以下のコードに加えて、上記のモデルから表現して$pullこれにコードを行おうとしましたreq.body.userIdbiddingUserId

        $pull: { inviteGroup: { $in: [req.body.userId]} }

しかし、それはうまくいかなかったようです。2D配列の行を削除するにはどうすればよいですか?私はこれでどんな助けにも感謝します!

これは、モデルと一致するmongodbでのコレクションの外観のスクリーンショットです。 ここに画像の説明を入力してください

   Post.findByIdAndUpdate(
      { _id: req.params.id },
      {
        $pull: { inviteGroup: req.body.userInvited }
      },
      function (err, docs) {
        if (err) {
          console.log("err$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
          console.log(err);

          context.res = {

            status: 500,

            body: {
              message: "Add Invite Error!",
              error: err

            },

            headers: {
              "Access-Control-Allow-Credentials": "true",
              "Access-Control-Allow-Origin": "*",
              "Access-Control-Allow-Methods": "PATCH, OPTIONS",
              "Access-Control-Allow-Headers": "Content-Type, Set-Cookie",
              "Access-Control-Max-Age": "86400",
              "Vary": "Accept-Encoding, Origin",
              "Content-Type": "application/json"
            }

          };

          context.done();



        } else {
          context.res = {

            status: 200,

            body: {
              message: "User Invited Successfully!",
              error: err

            },

            headers: {
              "Access-Control-Allow-Credentials": "true",
              "Access-Control-Allow-Origin": "*",
              "Access-Control-Allow-Methods": "PATCH, OPTIONS",
              "Access-Control-Allow-Headers": "Content-Type, Set-Cookie",
              "Access-Control-Max-Age": "86400",
              "Vary": "Accept-Encoding, Origin",
              "Content-Type": "application/json"
            }

          };

          context.done();

        }
      });

s7vr

これが実際の例です-

コレクション

{
    "_id" : ObjectId("5ecc1c6af2a26b884f4272eb"),
    "inviteGroup" : [
        [
            {
                "biddingUserId" : "3",
                "username" : "name3"
            },
            {
                "biddingUserId" : "2",
                "username" : "name2"
            }
        ],
        [
            {
                "biddingUserId" : "1",
                "username" : "name1"
            },
            {
                "biddingUserId" : "4",
                "username" : "name4"
            }
        ]
    ]

}

double $ elemMatchを使用してネストされた配列に到達し、positional演算子を使用して$ pullで外側の配列要素を識別し、クエリ条件で内側の配列要素を削除することに注意してください。

マングースコード

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/test', {useNewUrlParser: true});
var db = mongoose.connection;
mongoose.set('debug', true);
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
  // we're connected!
});
const InviteGroupSchema  = new mongoose.Schema({
   inviteGroup : [[{
    biddingUserId: { type: String, lowercase: true, trim: true },
    username: { type: String, lowercase: true, trim: true }
  }]]
})
const InviteGroup = mongoose.model('InviteGroup', InviteGroupSchema, 'invitegroups');

module.exports = {
    InviteGroup
}


InviteGroup.findOneAndUpdate(
 {
   "_id":mongoose.Types.ObjectId("5ecc1c6af2a26b884f4272eb"), 
   "inviteGroup": {"$elemMatch":{"$elemMatch":{"biddingUserId":"4"}}}
 }, 
 {"$pull":{"inviteGroup.$":{"biddingUserId":"4"}}}, 
 {"new":true} ).exec((err, results) => {console.log("Results " +  JSON.stringify(results));}
)

出力

{
  "inviteGroup":[
    [
      {"biddingUserId":"3","username":"name3"},
      {"biddingUserId":"2","username":"name2"}
    ],
    [ {"biddingUserId":"1","username":"name1"}
    ]
  ],
"_id":"5ecc1c6af2a26b884f4272eb"
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

rubyの2D配列の列全体を更新するループ

分類Dev

ノードJSマングースPULLクエリ

分類Dev

2D配列を行方向にランク付けする

分類Dev

xml行を2D配列にロードします

分類Dev

git pullコマンドとgit pushコマンドを使用したoriginマスターとorigin / masterの違い

分類Dev

インデックスを使用して2D配列全体で最大値を見つける方法

分類Dev

問題-Forループは、2D配列全体ではなく、2D配列の最初の位置のみを埋めます

分類Dev

Pythonで行に沿って2D配列をマージする方法

分類Dev

Pythonで行に沿って2D配列をマージする方法

分類Dev

2D配列の行を1D配列でフィルタリングする

分類Dev

配列2Dの条件で行と列をカウントします

分類Dev

2D配列でマスクされた3D配列から2D配列を返す

分類Dev

git pull vs git pull --getpushを試行するときのリベース

分類Dev

2D配列を小さな2D配列にスライス

分類Dev

2Dネストされた配列を2D配列シングルに変換する方法は?

分類Dev

2D配列ゲームマップの行番号

分類Dev

minmaxスケーリング後に2D配列を1D配列に変換する方法

分類Dev

2D配列をマスキングし、マスクされたインデックスに基づいて2番目の配列を操作する

分類Dev

マスキング配列の行を使用して、配列の行全体の平均を計算します

分類Dev

2d numpy配列の各行について、2番目の2d配列の等しい行のインデックスを取得します

分類Dev

プロセス外の2D配列の1行を埋める(VHDL)

分類Dev

2D配列の値の行にアドレスを返す関数?

分類Dev

2D配列を初期化するときの実行時エラー5

分類Dev

マングーススキーマ配列を追加する方法

分類Dev

1D配列を2D配列にマージする

分類Dev

adbは、pullコマンドを使用してシステム/アプリからapkをコピーします

分類Dev

2D配列を使用したJquery配列のキー値

分類Dev

形状を保持する2D配列をマスクする

分類Dev

アンマネージドSystem.IntPtrバイトベクトルを2Dデバイスバイト配列のGPU行にコピーします

Related 関連記事

  1. 1

    rubyの2D配列の列全体を更新するループ

  2. 2

    ノードJSマングースPULLクエリ

  3. 3

    2D配列を行方向にランク付けする

  4. 4

    xml行を2D配列にロードします

  5. 5

    git pullコマンドとgit pushコマンドを使用したoriginマスターとorigin / masterの違い

  6. 6

    インデックスを使用して2D配列全体で最大値を見つける方法

  7. 7

    問題-Forループは、2D配列全体ではなく、2D配列の最初の位置のみを埋めます

  8. 8

    Pythonで行に沿って2D配列をマージする方法

  9. 9

    Pythonで行に沿って2D配列をマージする方法

  10. 10

    2D配列の行を1D配列でフィルタリングする

  11. 11

    配列2Dの条件で行と列をカウントします

  12. 12

    2D配列でマスクされた3D配列から2D配列を返す

  13. 13

    git pull vs git pull --getpushを試行するときのリベース

  14. 14

    2D配列を小さな2D配列にスライス

  15. 15

    2Dネストされた配列を2D配列シングルに変換する方法は?

  16. 16

    2D配列ゲームマップの行番号

  17. 17

    minmaxスケーリング後に2D配列を1D配列に変換する方法

  18. 18

    2D配列をマスキングし、マスクされたインデックスに基づいて2番目の配列を操作する

  19. 19

    マスキング配列の行を使用して、配列の行全体の平均を計算します

  20. 20

    2d numpy配列の各行について、2番目の2d配列の等しい行のインデックスを取得します

  21. 21

    プロセス外の2D配列の1行を埋める(VHDL)

  22. 22

    2D配列の値の行にアドレスを返す関数?

  23. 23

    2D配列を初期化するときの実行時エラー5

  24. 24

    マングーススキーマ配列を追加する方法

  25. 25

    1D配列を2D配列にマージする

  26. 26

    adbは、pullコマンドを使用してシステム/アプリからapkをコピーします

  27. 27

    2D配列を使用したJquery配列のキー値

  28. 28

    形状を保持する2D配列をマスクする

  29. 29

    アンマネージドSystem.IntPtrバイトベクトルを2Dデバイスバイト配列のGPU行にコピーします

ホットタグ

アーカイブ