簡體   English   中英

如何從所有 mongodb 文檔中僅獲取特定值並將它們作為 json 返回?

[英]How to get only specific values from all mongodb documents and return them as json?

對於每個用戶,我都有這樣的用戶文檔:

{
  "_id": {
    "$oid": "638df6dd4774e9573010b138"
  },
  "username": "abc",
  "email": "abc@xyz.com",
  "stats": {
    "ranking": "1",
    "match": "0.214"
  },
  "stats_extra": {
    "pre_ranking": "10",
    "pre_match": "0.290"
  }
}

我試圖為每個用戶只獲取“用戶名”和“統計信息”,並將它們作為 JSON api 響應返回。

我可以像這樣為每個用戶打印用戶名和統計信息:

@app.get("/Stats",  tags=["userstats"])
def get_stats():
    for doc in app.Users.find():
        print(doc["username"],doc["stats"])
    return { } 

**但我正在努力尋找將所有用戶的用戶名和統計信息作為 json 響應發送的正確方法,如下所示:**

{"data": [ 
{"username":"abc", "stats":{"ranking": "1","match": "0.214"}} ,
{"username":"xyz", "stats":{"ranking": "10","match": "0.2104"}} ,
{"username":"ijk", "stats":{"ranking": "12","match": "0.2014"}}]
} 

您可以使用投影參數來指示必須返回文檔的哪些字段。 查看此鏈接

在你的情況下,這樣的事情應該有效:

app.Users.find(projection={"username": 1, "stats": 1})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM