9

users次のようなmongodb コレクションがあるとします。

{
  "_id": 1,
  "name": {
    "first" : "John",
    "last" :"Backus"
  },
}

name.first提供_idまたはその他の参照なしで、これから取得するにはどうすればよいですか。また、 `name^ だけを引っ張ると、埋め込まれたキーの配列 (この場合は最初と最後) が得られる可能性はありますか? どうすればそれができますか?

db.users.find({"name.first"})私にはうまくいきませんでした。

SyntaxError "missing: after property id (shell):1

4

2 に答える 2

29

の最初の引数find()はクエリ基準ですが、find()メソッドの2番目の引数は射影であり、結果セットに含めるまたは除外するフィールドのリストを含むドキュメントの形式を取ります。含めるフィールドを指定する(例{ field: 1 })か、除外するフィールドを指定する(例)ことができます{ field: 0 }。明示的に除外されていない限り、_idフィールドは暗黙的に含まれます。

あなたの場合、db.users.find({name.first})は検索条件であると予想されるため、エラーを出します。

jsonという名前を取得するには: db.users.find({},{name:1})

name.firstのみをフェッチする場合

db.users.find({},{"name.first":1})

Mongodbドキュメントのリンクはこちら

于 2012-12-18T06:16:17.177 に答える