簡體   English   中英

MongoDB 獲取部分文檔

[英]MongoDB get a partial document

我有一個文檔存儲在 MongoDB 中:

{
   "id": 1,
   "op": "someone",
   "title": "some title",
   "category": 1,
   "conversation": {
      "1": {
         "user": 2,
         "comment": "some comment"
      },
      "2": {
         "user": 9,
         "comment": "comment 2"
      },
      ......
      "26": {
         "user": 5,
         "comment": "comment 26"
      }
   }
}

我想根據要求得到這個:(例如 POST {"id":1, "page":2})

{
  "id": 1,
  "op": "someone",
  "title": "some title",
  "category": 1,
  "conversation": {
     "11": {
        "user": 10,
        "comment": "comment 11"
     },
     ......
     "20": {
        "user": 25,
        "comment": "comment 25"
     }
   }
}

即從 11 日開始的 10 條評論,即

第 1 頁:返回評論 1 - 10,

第 2 頁:返回評論 11 - 20,

……

第 10 頁:返回評論 91 - 100

我正在使用 NodeJS。 由於在節點中處理這個可以用掉很多 memory。 我想在 Mongo 中執行此操作。

為了在 MongoDB 端進行該過程,您可以使用 skip() 和 limit() function

const document_by_page = 10;
const page = 1;

db.collection.find().skip(page * document_by_page).limit(document_by_page);

使用來自您評論的新信息,您應該使用 mongo db 管道來處理 MongoDB 端的信息。 看看https://docs.mongodb.com/manual/reference/operator/aggregation/filter/#mongodb-expression-exp.-filter

度過愉快的一天,找到您的解決方案

您可以使用Mongo 聚合管道對文檔進行一些強大的重塑。

看起來$redact階段可以滿足您的要求 - MongoDB 站點上有一個非常相似的示例,他們希望從文檔中的 arrays 檢索特定元素。

暫無
暫無

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

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