gpt4 book ai didi

node.js - 为什么 MongoDB/Mongoose 查找带有 null 或未定义参数的查询会返回所有文档?

转载 作者:太空宇宙 更新时间:2023-11-03 23:12:53 25 4
gpt4 key购买 nike

API 使用特定参数从 MongoDB 请求相同的数据。但如果查询参数为空或未定义,我不想返回任何文档。相反,MongoDB 返回所有文档。为什么这是正常的?

await exampleModel.find({}).lean().exec()        // return all docs. That's okay.
await exampleModel.find(null).lean().exec() // return all docs. That's weird.
await exampleModel.find(undefined).lean().exec() // return all docs. That's weird.

最佳答案

是的,this is normal 。当传递 nullundefined 或根本不传递参数时 (foo.查找())。在任何情况下,filterprojection(第二个参数)都是可选的:

query: Specifies selection filter using query operators. To return all documents in a collection, omit this parameter or pass an empty document ({}).

projection: Specifies the fields to return in the documents that match the query filter. To return all fields in the matching documents, omit this parameter.

如果您不想在查询为空或未定义时返回任何内容,您可以像这样构建它:

const results = query ? await exampleModel.find(query).lean.exec() : []        

关于node.js - 为什么 MongoDB/Mongoose 查找带有 null 或未定义参数的查询会返回所有文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59246925/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com