MongoDB查询(至少在JavaScript中)被构造为JSON,但是它非常灵活,因此我知道这并不是一件容易的事,实际上甚至不确定是否可行,而仅仅是想知道。
是否存在一个JSON模式来检测随机JSON是否是有效的MongoDB查询对象?
答案 0 :(得分:3)
您可以使用类似OP's own answer
使用方法
var accepts = require('mongodb-language-model').accepts;
console.log(accepts('{"ns":{"$in":["foo", "bar", "baz"]}}')); // true
console.log(accepts('{"ns":{"$in":{}}}')); // false
console.log(accepts('{"ns":{"$regex": "foo"}}')); // true
答案 1 :(得分:0)
似乎MongoDB Compass(至少部分地)为许多命令(例如$ or,$和$ text / $ search等)实现了查询语言验证。Compass不会简单地检查您的查询是否为有效的JSON,但是还验证您提供了正确的查询格式。 如果您对它的实现方式感兴趣,建议您检查github源代码。
答案 2 :(得分:0)
答案 3 :(得分:0)
您可以验证结构是否有效,但如果您想知道查询是否真的正确,例如具有正确的语法并且可以执行 - 那么不,不是真的。