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

Mongoose、MongoDB:push()の後にドキュメントをsave()する方法は?

    コメントが投稿に追加される頻度によって異なると思います

    頻繁に発生する場合は、最新のコメントカウントを取得することをお勧めします。これは、次のように保存コールバックに含まれます。

    myPost.comments.push({user: 42, text: 'blablabla'});
    myPost.save(function (err, post) {
        newCount = post.comments.length
    });
    

    push()はMongooseではアトミックであることを忘れないでください。つまり、 $push を使用します。 $set ではなく内部で (nonAtomicPush と比較してください )。したがって、理論的には、コメントへの他の任意の数のプッシュ/保存が同時に発生する可能性があります。つまり、特定の例では、comments.lengthは必ずしもn+1ではありません

    多くのコメントを期待していない場合は、例で十分です。時々精度が下がる可能性があります。利点は、カウントの取得が同期されるため、少し速くなることです




    1. mongodb geoNear vs near

    2. MongoDB countDocuments()

    3. 文字列をfloatに変更するMongodb配列

    4. 2つのコレクションのmongodiffを比較する