Mongodb

在 mongodb for node.js 中使用 findOne() 返回除某些欄位之外的所有欄位

  • April 1, 2022

我正在嘗試使用以下腳本來查詢文件,但返回的文件仍然包含我不想要的欄位(密碼)。

const client = await MongoClient.connect(
                     MONGODB_CONNECTION_STRING, 
                     { useUnifiedTopology: true }
                  );
const db = client.db(DB_NAME);    
const collection = db.collection(collectionName);    
const data = await collection
               .find(
                   {
                       _id: someId
                   },
                   {
                       password: 0
                   }
               );

它應該像我在 mongodb 文件中閱讀的那樣工作,但我沒有在 mongodb for node.js 中找到關於 findOne 的任何文件。

我的問題的解決方案在另一個stackoverflow對另一個問題的回答中提到。如果我將投影修改為“欄位”的值,如下所示,那麼 findOne() 將按我的預期工作。

const data = await collection
           .findOne(
               {
                   _id: someId
               },
               {
                   fields: {password: 0}
               }
           );

我認為你需要使用project(). 請參閱此處的範例 -投影

引用自:https://dba.stackexchange.com/questions/256856