【问题标题】:possible to get return of records NOT in db? mongoose可以返回不在数据库中的记录吗?猫鼬
【发布时间】:2019-12-25 01:38:26
【问题描述】:

对不起,我这里没有脚本,但我想做的是。

假设我有一些独特的 [1, 2, 3, 4, 5] 数组 我的数据库只有1, 2, 3, 5的记录

mongoose 有没有办法比较并有一个输出,如 4 不在 DB 中,但不做更改,如 create, update

我可以用$in通过漫长的方式查询和数据库来获取数据库中的内容,然后比较返回的记录。

但我想知道是否会有更快的方法通过猫鼬?

提前感谢您的任何建议/帮助。

【问题讨论】:

  • 你试过array.includes(4)

标签: javascript database mongoose nosql


【解决方案1】:

您可以使用distinct 方法查找数据库中的内容,然后将结果与您的数组进行比较以获取数据库中没有的内容。

例子:

async () => {
  let arr = [1, 2, 3, 4, 5];
  let inDb = await YourModel.distinct("your_field");
  let notInDb = arr.filter(val => !inDb.includes(val));
}

【讨论】:

    【解决方案2】:

    你可以试试这个例子:

    const arr = [1, 2, 3, 4, 5]
    const database = [1, 2, 3, 5]
    
    const notInDB = arr.filter(value => {
      return database.indexOf(value) === -1
    })
    
    console.log(notInDB)
    

    【讨论】:

      猜你喜欢
      • 2018-07-12
      • 2022-11-22
      • 1970-01-01
      • 2018-07-10
      • 1970-01-01
      • 2014-04-19
      • 2020-04-07
      • 2017-06-13
      • 1970-01-01
      相关资源
      最近更新 更多