Kle*_*ios 6 mongodb mongodb-query
我有一个参数化的 mongodb 聚合查询,其中参数接收要过滤的给定 ObjectID 或 NULL(如果我想返回所有文档)。我的意思是,我想使用相同的管道返回一个或所有文档。
我的管道查询是:
db.user.aggregate([
{'$match': { _id : <MYUSERPARAM> } }
]);
Run Code Online (Sandbox Code Playgroud)
MYUSERPARAM的值将具有要过滤的给定 ObjectId,或者如果我不想过滤单个文档而想返回所有文档,则 MYUSERPARAM 的值将具有某个值。
然后我的系统将替换MYUSERPARAM并运行查询,例如:
过滤单个文档:
db.user.aggregate([
{'$match': { _id : ObjectId("5e2b9ab8b1dbae5124e4b635") } }
]);
Run Code Online (Sandbox Code Playgroud)
或以某种方式返回所有文档:
db.user.aggregate([
{'$match': { _id : $all } }
]);
Run Code Online (Sandbox Code Playgroud)
但上面的方法不起作用。
如何使用管道查询来过滤单个文档或返回所有文档,只需更改查询中的单个值/参数(如上面的示例所示)?
Val*_*jon 13
听起来像 NoSQL 注入:
db.user.aggregate([
{'$match': { _id : {$ne: ""} } }
]);
or
db.user.aggregate([
{'$match': { _id : {$exists: true} } }
]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7524 次 |
| 最近记录: |