Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mongoose findOne()在多个集合中_Javascript_Node.js_Mongodb_Mongoose - Fatal编程技术网

Javascript Mongoose findOne()在多个集合中

Javascript Mongoose findOne()在多个集合中,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正在构建一个删除过程,在删除原始文档之前,我需要确定某个文档是否引用了其他文档 在下面的示例中,我需要了解我的其他文档中是否使用了给定的公司: 模型元数据: Company = { id: ID, name: name } User = { id: ID, name: name, company_id: ID } Application = { id: ID, type: string, company_id: ID }

我正在构建一个删除过程,在删除原始文档之前,我需要确定某个文档是否引用了其他文档

在下面的示例中,我需要了解我的其他文档中是否使用了给定的公司:

模型元数据:

Company = {
    id: ID,
    name: name
}

User = {
    id: ID,
    name: name,
    company_id: ID
}

Application = {
     id: ID,
     type: string,
     company_id: ID
}

...
下面是我将使用异步调用执行的操作:

const checkInUse = async (company_id) =>  {

     let ret = await UserModel.findOne({ company_id: company_id });

     if (ret) return true;

     ret = await ApplicationModel.findOne({ company_id: company_id });

     if (ret) return true;

     ...

     return false;
}
我有十几个集合,所以一些检查需要多次调用
findOne()
,这就是我想要避免的


有没有更好的检查方法?

承诺。所有
都是为了加快检查速度。没有必要。使用异步调用将触发所有查询。在Synchronous模式下,如果第一个查询发现一个事件,则不会发出下一个查询…为什么您要执行
findOne
,而可以直接删除它们?对于特定情况,这是“不必要的”。总的来说,如果真/假分布均匀,应用程序端的速度会更快,即使它会在数据库端产生额外的负载。