MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara mendapatkan koleksi dokumen dari kursor mongodb?

Cursor mongodb mengimplementasikan Stream dari futures peti . Ini disebutkan dalam dokumen :

Saya sebenarnya akan merekomendasikan menggunakan try_collect() fungsi dari TryStreamExt sifat untuk mendapatkan Result<Vec<Document>> alih-alih. Kemudian Anda dapat menggunakan unwrap_or_else() untuk mengembalikan daftar. Anda juga harus menggunakan collection_with_type() metode untuk mendapatkan koleksi sehingga hasil Anda akan secara otomatis dideserialisasi ke jenis yang tepat, bukan hanya Document (pastikan itu mengimplementasikan Debug , Serialize dan Deserialize ).

Berikut ini contoh kerja

use futures::TryStreamExt;
use mongodb::Client;
use serde::{Deserialize, Serialize};

#[derive(Debug, Serialize, Deserialize)]
struct Vehicle {
    id: String,
    name: String,
}

async fn list_all() -> Vec<Vehicle> {
    let client = Client::with_uri_str("mongodb://example.com").await.unwrap();
    let database = client.database("test");
    let collection = database.collection_with_type::<Vehicle>("vehicles");
    let cursor = match collection.find(None, None).await {
        Ok(cursor) => cursor,
        Err(_) => return vec![],
    };

    cursor.try_collect().await.unwrap_or_else(|_| vec![])
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menggunakan Mongo / BSON ObjectId dengan Parse Server

  2. Cocokkan Dua bidang berbeda di Luwak, Agregat?

  3. MongoDb:Bagaimana cara mengimpor data dump dari file .gz?

  4. Dua permintaan bersamaan bercampur di aplikasi Node.js

  5. cappedMax tidak berfungsi di winston-mongodb logger di Node.js di Ubuntu