Home > Blockchain >  Extract field from mongodb query result set
Extract field from mongodb query result set

Time:04-20

How to extract json field from query response in node js?

I have a query:-

const Allposts = await Post.aggregate([pipeline])

Allposts:-

  {
    _id: 1,
    type: 'A',
    source: 'B',
    status: 'C',
    totalCount: 7,
    createdAt: 2022-04-13T17:12:28.097Z,
    updatedAt: 2022-04-13T17:12:28.097Z,
    __v: 0
  },
 {
    _id: 2,
    type: 'A',
    source: 'B',
    status: 'C',
    totalCount: 7,
    createdAt: 2022-04-13T17:12:28.097Z,
    updatedAt: 2022-04-13T17:12:28.097Z,
    __v: 0
  },
 {
    _id: 3,
    type: 'A',
    source: 'B',
    status: 'C',
    totalCount: 7,
    createdAt: 2022-04-13T17:12:28.097Z,
    updatedAt: 2022-04-13T17:12:28.097Z,
    __v: 0
  }, and so on

I want to extract the totalCount field and store its value how to do this?

CodePudding user response:

Assuming totalCount value will be same in all the objects, you can extract the first value using first index

let tc = Allposts[0].totalCount;

let data = [{
    _id: 1,
    type: 'A',
    source: 'B',
    status: 'C',
    totalCount: 7,
    createdAt: '2022 - 04 - 13 T17: 12: 28.097 Z',
    updatedAt: '2022 - 04 - 13 T17: 12: 28.097 Z',
    __v: 0
  },
  {
    _id: 2,
    type: 'A',
    source: 'B',
    status: 'C',
    totalCount: 7,
    createdAt: '2022 - 04 - 13 T17: 12: 28.097 Z',
    updatedAt: '2022 - 04 - 13 T17: 12: 28.097 Z',
    __v: 0
  },
  {
    _id: 3,
    type: 'A',
    source: 'B',
    status: 'C',
    totalCount: 7,
    createdAt: '2022 - 04 - 13 T17: 12: 28.097 Z',
    updatedAt: '2022 - 04 - 13 T17: 12: 28.097 Z',
    __v: 0
  }
]

let tc = data[0].totalCount;

console.log(tc);

CodePudding user response:

If you get only totalCount field from query response, you can add .project() in query as below

const Allposts = await Post.aggregate().project("totalCount -_id");
  • Related