如何使用 GraphQL 在 MongoDB 中插入多个没有现有数据的数组对象



当前的 GraphQL 解析器是插入用户数据。仅当成员数据库中不存在id(id != member_id(时,我才需要将多个数组对象插入MongoDB。

需要插入的数据

[
  {
    first_name: "Mate",
    id: 402335654,
    is_bot: false,
    language_code: "ml"
  }, {
    first_name: "testerbot",
    id: 357622799,
    is_bot: false,
    username: "testergroupbot"
  }, {
    first_name: "machan",
    id: 1225612,
    is_bot: false,
    language_code: "ml",
    username: "alavalathi"
  }
]

电流旋转变压器

createMember: async args => {
  try {
    const existMember = await Member.findOne({
      member_id: args.memberInput.member_id,
    });
    if (existMember) {
      throw new Error('This user already exist');
    }
    const member = new Member({
      member_id: args.memberInput.member_id,
      first_name: args.memberInput.first_name,
      last_name: args.memberInput.last_name,
      username: args.memberInput.username,
      date: new Date(args.memberInput.date),
    });
    const result = await member.save();
    // eslint-disable-next-line no-underscore-dangle
    return { ...result._doc };
  } catch (error) {
    throw error;
  }
},

我是 GraphQL 和 MongoDB 的初学者。

解决方案附带insertMany()

createMember: async args => {
  try {
    const newMembers = await args.memberInput.map(arg => ({
      member_id: arg.member_id,
      first_name: arg.first_name,
      last_name: arg.last_name,
      username: arg.username,
      date: new Date().toISOString(),
    }));
    const results = await Member.insertMany(newAdmins);
    return results.map(result => {
      return { ...result._doc };
    });
  } catch (error) {
    throw error;
  }
},

最新更新