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

マングースに挿入された最新のサブドキュメントのIDを見つける

    私もこの答えを探していましたが、配列の最後のドキュメントにアクセスするのが好きかどうかはわかりません。ただし、別の解決策があります。メソッドm['b'].push 1または0の整数を返します-これはプッシュの成功に基づいていると思います(検証の観点から)。ただし、サブドキュメント、特にサブドキュメントの_idにアクセスするには、createを使用する必要があります。 最初にメソッドを実行し、次にpush

    コードは次のとおりです。

    var subdoc = m['b'].create({ ba: 234, bb: "World" });
    m['b'].push(subdoc);
    console.log(subdoc._id);
    m.save(function(err, model) { console.log(arguments); });
    

    何が起こっているのかというと、オブジェクトをpushメソッドまたはcreateメソッドに渡すと、スキーマキャストがすぐに発生します(検証や型キャストなどを含む)。これは、これがObjectIdが作成される時間であることを意味します。モデルがMongoに保存されたときではありません。実際、mongoは_id値をサブドキュメントに自動的に割り当てません。これはmongooseの機能です。マングースの作成はここに文書化されています:ドキュメントの作成

    したがって、サブドキュメント_idがある場合でも、それを保存するまでMongoにはまだ存在しないため、実行する可能性のあるDOCRefアクションにうんざりしていることにも注意してください。



    1. スプリングブートを使用してmongodbの自動生成フィールドを作成するにはどうすればよいですか?

    2. デフォルトのセッションタイムアウトとは何ですか?RedisをバックエンドとしてSpringSessionを使用する場合の設定方法

    3. mongodb $ in limit

    4. 合計16MBの制限を回避する