Garaku49
@Garaku49 (我 楽)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

mongoDBのfindOneについて

MongoDB v4.4.4をNode.jsのドライバーで操作してるときに分からなかったことがあったため質問です。
findOneメソッドのオプションとも言える第二引数を試していたところ、思ったとおりの動きをしませんでした。{対象のフィールド名:true もしくは 1}と設定してみても、対象のフィールド以外も普通に返ってくるのです。
例えば、
{_id:"---",name:"名前",age:20}
というデータがあったとして、
第2引数に{name:true}と設定して、
{_id:"---",name:"名前"}
と返ってくるのを予測しているのに
{_id:"---",name:"名前",age:20}
と全部返ってきている状況です。

参考にしたドキュメントはこちら

なにかわかればお願いします。

0

1Answer

私のローカルのMongoDB(v4.4.4)で試しましたが、機能しました。

> db.user.find()
{ "_id" : ObjectId("6076f3de576c9213ceabfe1c"), "name" : "mr.a", "age" : 10, "gender" : "m", "hobbies" : [ "programming" ] }
{ "_id" : ObjectId("6076f3de576c9213ceabfe1d"), "name" : "mr.b", "age" : 20, "gender" : "m", "hobbies" : [ "vi" ] }
{ "_id" : ObjectId("6076f3de576c9213ceabfe1e"), "name" : "ms.c", "age" : 30, "gender" : "f", "hobbies" : [ "programming", "vi" ] }
{ "_id" : ObjectId("6076f3df576c9213ceabfe1f"), "name" : "ms.d", "age" : 40, "gender" : "f", "hobbies" : [ "cooking" ] }
> 
> 
> db.user.findOne({},{name:true})
{ "_id" : ObjectId("6076f3de576c9213ceabfe1c"), "name" : "mr.a" }

切り分けのために、MongoDBで直接試されてみてはいかがでしょうか。

0Like

Your answer might help someone💌