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

マングースで現在のアイテムの次と前のアイテムをフェッチする方法

    したがって、次のようなスキーマがあるとします。

    {
     _id,
     text    
    }
    

    _idはmongoObjectIdだと思うので、投稿日が含まれていて、並べ替えることができます

    ObjectId( "43cc63093475061e3d95369d")に等しいIDで現在の投稿を開いたとしましょう (これの代わりに、curIdを使用します )そして私は次のものと前のものを知る必要があります。また、作成した日付の降順ですべての投稿を1つずつ取得する必要があることも考慮してください。

    あなたがこれを好きになることができる次の投稿を取得します:

    db.posts.find({_id: {$gt: curId}}).sort({_id: 1 }).limit(1)
    

    あなたがこれを好きになることができる前の投稿を入手してください:

    db.posts.find({_id: {$lt: curId}}).sort({_id: -1 }).limit(1)
    

    いくつかのこと:

    1. mongodb ObjectIdを使用しない場合 上記のコードは機能しませんが、postDateは引き続き使用できます。 idの代わりに、curIdの代わりに現在の投稿postDate 。
    2. 次/前の投稿を取得するときは順序に注意してください。次の投稿を取得するには、並べ替えascが必要です。前の投稿を取得するには、並べ替えdescが必要です。
    3. 私はマングースに精通していないので、上記のスクリプトはmongodbシェルスクリプトです。


    1. MongoEngineを使用して並べ替えますか?

    2. MongoDBシャードクラスターのトラブルシューティング

    3. MongoDBを使用するときに慣例によりBsonRepresentation属性を適用する方法

    4. Redisキャッシュ内のデータの階層(ツリー)の一部を無効にする方法