鍍金池/ 問答/數(shù)據(jù)庫  網(wǎng)絡安全  HTML/ nodejs操作mongodb findOne/find 設置 projecti

nodejs操作mongodb findOne/find 設置 projection 參數(shù) 不起作用?

mongodb:3.6.5
node:9.9.0
koa:2.5.0
npm-mongodb:3.0.5

遇到的問題:

用findOne/find帶projection參數(shù)查詢
在node里 返回結果仍然帶有被剔除的字段

router.post('/manage', async(ctx, next) => {
    var users = db.collection("user");
    var doc = await users.findOne({userName:'yunf'},{_id:0});
    var doc1 = await users.find({userName:'yunf'},{_id:0}).toArray();
   
    console.log(doc);
    console.log(doc1 );
});
            
// 返回的結果仍然帶有被剔除的字段

// { 
//   _id: 5ac1cfe24a814acb143e3084,
//   userName: 'yunf',
//   authority: '00000000010000',
//   cerationTime: '',
//   updateTime: 2018-04-06T06:18:55.188Z,
//   userPwd: '$2a$10$IA7/C9fplPoxY6ilTbadyeBJjAxHRUIgP.ezOQqYMCv7vHXPhx39u' 
// }...

但同樣的代碼 shell正常返回
圖片描述

查過mongodb 3.6的文檔find()查詢返回的是游標 可以用project指定返回的字段

var cursor3 = db.collection('user').find({}).project({_id: 0 }).toArray();

// { userName: 'yunf'}]

但是為什么用findOne/find帶projection參數(shù)查詢 會不起作用
是版本問題???求大佬指點?。。。。。。。。。。。。。。?!

回答
編輯回答
笨笨噠

你所使用的mongodb是nodejs的一個package,而不是原生的查詢語句,那是package生成的最終的結果。
Node.js MongoDB Driver API

文檔里寫很清楚find(query, options),options的定義里是沒有_id的,里面有projection應該就是你想要的。

2017年4月13日 10:51