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

MongoDBScala-特定のフィールド値のクエリドキュメント

    クエリは次のように変更できます:

    import com.mongodb.MongoClient
    import com.mongodb.client.MongoCollection
    import com.mongodb.client.model.Projections
    
    def getLatestCommitOffsetFromDB(
      databaseName: String,
      collectionName: String
    ): Long = {
    
      val mongoClient = new MongoClient("localhost", 27017);
    
      val collection =
        mongoClient.getDatabase(databaseName).getCollection(collectionName)
    
      val record = collection
        .find()
        .projection(
          Projections
            .fields(Projections.include("offset"), Projections.excludeId()))
        .first
    
      record.get("offset").asInstanceOf[Double].toLong
    }
    

    com.mongodb.client.model.Projectionsが欠落していると思います fieldsを使用するためにインポートします 、 include およびexcludeId

    firstを使用しました limit(1)の代わりに 結果を簡単に抽出できるようにします。

    最初 Documentを返します getを呼び出すことができるオブジェクト 要求されたフィールドの値を取得します。

    しかし実際には、1つのレコードと1つのフィールドだけが必要なので、投影を削除できます!:

    val record = collection.find().first
    


    1. 新しいmongoC#ドライバーでfindAllを実行し、同期させる方法

    2. MongoDBが日付を挿入すると、UTCに変換されます

    3. データベースにディープディレクトリツリーを保存する

    4. Mongo:showdbsはテストdbを表示しません。なんで?