MongoDB查询语言本身是否有JSON模式之类的东西?

时间:2018-09-21 22:52:40

标签: json mongodb jsonschema

MongoDB查询(至少在JavaScript中)被构造为JSON,但是它非常灵活,因此我知道这并不是一件容易的事,实际上甚至不确定是否可行,而仅仅是想知道。

是否存在一个JSON模式来检测随机JSON是否是有效的MongoDB查询对象?

4 个答案:

答案 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)

您可以使用以下任何软件包

mongodb-language-model

mongodb-query-parser

答案 3 :(得分:0)

您可以验证结构是否有效,但如果您想知道查询是否真的正确,例如具有正确的语法并且可以执行 - 那么不,不是真的。