从数组排序

问题描述 投票:0回答:1

我有一个json文件

var params = Permissions.json;

[
  {
    "module": "h1", 
    "permission": "h1-menu"
  },
  {
    "module": "h2", 
    "permission": "h2-menu"
  },
  {
    "module": "h3", 
    "permission": "h3-menu"
  },
]

在mongo集合中

const permissions = await Permissions.find();
[
  {
    "module": "h1", 
    "permission": "h1-menu"
  },
  {
    "module": "h2", 
    "permission": "h2-menu"
  }
]

现在我想从params数组创建一个新数组,该对象数组按权限值在权限数组中不存在对象值,在对新数组进行排序之后,我想在db中逐个创建一个数组对象。

const PermissionsResult = await Permissions.createEach(newArray).fetch();

OR

如何在json文件中为权限集合创建新添加的权限,而不进行排序。这是Sails js的初始化服务。

var permissions_json = require('../../assets/init/permissions.json');
// Find permissions
  const permissions = await Permissions.find();
  if (permissions && permissions.length > 0) {
    return permissions;
  }
  const params = permissions_json;
  // Create permissions as per json data
  const PermissionsResult = await Permissions.createEach(params).fetch();
mongodb typescript sails.js
1个回答
0
投票

除非Mongo具有用于联合和联接的JSON特定功能,否则您将使用Javascript进行此操作。

  1. 在mongo集合中创建permission字段值的数组。
  2. 循环测试值(您的params变量)。
  3. 如果测试值不在键值数组中,请将相关条目从params添加到createMe数组。
  4. 排序createMe,然后创建记录。

或者,您不能简单地对params数组进行排序,然后对Waterline的findOrCreate() method进行排序吗?

© www.soinside.com 2019 - 2024. All rights reserved.