sql >> データベース >  >> NoSQL >> MongoDB

値の配列としてのみ結果を返す

    map()ができます 。 Array.map()を使用します 配列を返すのでマングースを使用します。$groupを使用する方がよいでしょう。 _id $pushを使用するよりも

    const subCategory = (await SubCategory.aggregate([
      { '$match': { category: "dining" } },
      { '$group': { '_id': "$name" } }
    ])).map(({ _id }) => _id);
    

    またはCursor.map() 基になるCollectionを使用する場合 コアドライバーから:

    const subCategory = await SubCategory.collection.aggregate([
      { '$match': { category: "dining" } },
      { '$group': { '_id': "$name"  } }
    ]).map(({ _id }) => _id).toArray();
    

    find()とほとんど同じです 「明確な」結果が必要ない場合:

    const subCategory = (await Subcategory.find({ category: "dining" }))
      .map(({ name }) => name);
    

    または、Cursor.map()を使用します

    const subCategory = await Subcategory.collection.find({ category: "dining" })
      .map(({ name }) => name).toArray();
    

    distinct()を使用することもできます 、基本的に集計プロセスとmap()のバリエーションを実行します 「内部」(「フィールド部分のみを返す」であり、個別の集計方法ではありません):

    const subCategory = await SubCategory.distinct("name",{ category: "dining" });
    

    MongoDB自体はBSONドキュメント以外のものを返しません。また、単純な文字列はBSONドキュメントではありません。



    1. Django RESTフレームワークは、redisキーが空になった後でも、キャッシュされたデータで応答します

    2. 文字列としてmongoドキュメントIDを持っている場合、それを_idとしてクエリするにはどうすればよいですか?

    3. Mongodbの辞書を更新しています

    4. ネストされたキーのRedisリスト