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

MongoDB-タイムスタンプ付きのドキュメントから最新のnull以外のフィールド値を取得します

    これを試すことができます:

    db.getCollection('test').aggregate([
        //Sort
        {$sort: { datetime: -1 }},
        //Add fields to an array
        {$group: {
            "_id": null,
            "field1": { $push: "$field1" },
            "field2": { $push: "$field2" },
        }},
    
        //Filter and do not include null values
        {$project: {
            "field1notNull" : {
                  $filter: {
                   input: "$field1",
                   as: "f",
                   cond: { $ne: [ "$$f", null ] }
                }
              },
            "field2notNull" : {
                  $filter: {
                   input: "$field2",
                   as: "f",
                   cond: { $ne: [ "$$f", null ] }
                }
              }
            }
        },
        //Get the first values of each
        {$project: {
            "_id": null,
            "field1": {$arrayElemAt: ["$field1notNull", 0]},
            "field2": {$arrayElemAt: ["$field2notNull", 0]} 
        }}
    ])
    


    1. マップリデュースの実行はpymongoで失敗しましたが、mongoシェルで成功しました

    2. MongoDBシェル-名前にピリオドが含まれるコレクションにアクセスしますか?

    3. SpringRedisエラーハンドル

    4. Spring-Data-MongoDBを使用してエンティティに@TextIndex名を設定する方法