mongodb中查詢返回指定字段


mongodb中查詢返回指定字段

在寫vue項目調用接口獲取數據的時候,比如新聞列表頁我只需要顯示新聞標題和發表時間,點擊每條新聞進入詳情頁的時候才會需要摘要、新聞內容等關於此條新聞的所有字段。 
但其實我所有關於新聞的數據在同一個數據集合里,也就是只有一個集合

我不希望獲取新聞列表的時候就把每條新聞的所有數據都顯示 
我也不希望是建兩個集合分別放列表數據和詳情數據

所以這篇文章對我很有幫助:MongoDB查詢操作限制返回字段的方法

//只輸出id和title字段,第一個參數為查詢條件,空代表查詢所有 db.news.find( {}, { id: 1, title: 1 } ) //如果需要輸出的字段比較多,不想要某個字段,可以用排除字段的方法 //不輸出內容字段,其它字段都輸出 db.news.find( {}, {content: 0 } )

 

想了解詳細內容可參照上方原文。我這里只是對自己項目需求的簡單紀錄。方法親測有效。

 

MongoDB查詢操作限制返回字段的方法

 
這篇文章主要介紹了MongoDB查詢操作限制返回字段的方法,需要的朋友可以參考下
 
映射(projection )聲明用來限制所有查詢匹配文檔的返回字段。projection以文檔的形式列舉結果集中要包含或者排除的字段。可以指定要包含的字段(例如: {field:1})或者指定要排除的字段(例如:{field:0})。默認_id是包含在結果集合中的,要從結果集中排除_id字段,需要在 projection中指定排除_id字段({_id:0})。除了_id字段,不能在一個projection中聯合使用包含和排除語意。

返回匹配文檔的所有字段:

如果沒有指定projection,find()方法返回所有匹配文檔的所有字段。
 代碼如下:
1
db.inventory.find( { type:  'food'  } )

這個例子將返回inventory集合中type字段的值為"food"的所有文檔,返回的文檔包含全部字段。

返回指定字段和_id字段:

一個projection可以明確地指定多個字段。下面的操作中,find()方法返回匹配的所有文檔。在結果集中,只有item和qty字段,默認_id字段也是返回的。
代碼如下:
1
db.inventory.find( { type:  'food'  }, { item:  1 , qty:  1  } )

  

僅返回指定字段:
可以通過在projection中指定排除_id字段將其從結果中去掉,如下例子所示:
代碼如下:
1
db.inventory.find( { type:  'food'  }, { item:  1 , qty:  1 , _id: 0  } )

返回除排除掉以外的字段:
可以使用一個projection排除一個或者一組字段,如下:
 代碼如下:
1
db.inventory.find( { type:  'food'  }, { type: 0  } )

這個操作返回所有type字段值為food的文檔,在結果中type字段不返回。

數組字段的projection:
  elemMatchelemMatch和slice運算符是對數組進行projection的唯一途徑。   


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM