You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Rust中使用azure_data_cosmos检索文档?求示例指导

使用azure_data_cosmos检索并提取文档内容的示例

你的代码已经完成了客户端初始化和文档客户端的创建,但还需要处理异步请求的执行以及文档内容的提取。以下是完整的可运行示例:

1. 确保依赖配置

在Cargo.toml中添加必要依赖:

[dependencies]
azure_data_cosmos = "0.20" # 建议使用最新版本
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
tokio = { version = "1.0", features = ["full"] }

2. 完整代码实现

use azure_data_cosmos::prelude::*;
use serde::{Deserialize, Serialize};
use std::error::Error;

// 根据你的实际文档结构定义结构体,字段需与文档JSON匹配
#[derive(Debug, Serialize, Deserialize)]
struct MyDocument {
    id: String,
    permission: String,
    // 添加你的文档其他字段
}

#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
    // 替换为你的Cosmos资源信息
    let account = "你的Cosmos账户名";
    let primary_key = "你的账户主键";
    let database_name = "目标数据库名";
    let collection_name = "目标集合名";

    // 初始化客户端
    let authorization_token = AuthorizationToken::primary_key(&primary_key)?;
    let client = CosmosClient::new(account, authorization_token);

    let database_client = client.database_client(database_name);
    let collection_client = database_client.collection_client(collection_name);

    // 要检索的文档ID和分区键
    let document_id = "my_doc_id";
    let partition_key = "my_doc_permission";

    // 创建文档客户端并执行检索请求
    let document_client = collection_client.document_client(document_id, &partition_key)?;
    let response = document_client.get_document().await?;

    // 方式1:反序列化为自定义结构体(强类型)
    let retrieved_doc: MyDocument = response.document()?.clone();
    println!("强类型文档内容: {:?}", retrieved_doc);

    // 方式2:反序列化为JSON Value(适配任意文档结构)
    let raw_doc: serde_json::Value = response.document()?.clone();
    println!("原始JSON文档:\n{}", serde_json::to_string_pretty(&raw_doc)?);

    Ok(())
}

关键说明

  • get_document()是异步方法,必须在异步上下文(如tokio::main)中使用.await执行才能获取响应
  • response.document()用于从响应中提取文档数据,通过clone()获取所有权后,可反序列化为自定义结构体或serde_json::Value
  • 避免使用unwrap()处理错误,改用?传播错误,生产环境中可添加更具体的错误处理逻辑

内容的提问来源于stack exchange,提问作者Cyriel Lamerigts

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 15:07:13