[英]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.