MongoDB的字符串从运行命令
我有字符串格式蒙戈查询。我怎样才能运行蒙戈这个查询字符串?
我可以在蒙戈外壳运行以下命令:
db.getCollection('myCollenction').find({})
我怎样才能运行的node.js相同的命令蒙戈驱动程序吗?
var query = "db.getCollection('myCollenction').find({})";
db.runCommand(query);
我有一个MongoDB的查询生成器,现在我需要生成的查询和执行上蒙戈。
我使用Node.js的8.11.1和MongoDB本地节点驱动3.1
编辑
我发现我可以运行MongoDB的EVAL funtion要做到这一点,但它已被弃用。还有另一种方式来做到这一点?或者还有另一种方式来获得对jQuery的QueryBuilder的生成的条件和执行我的蒙戈数据库得到的结果?
回答如下:使用附带的jQuery的QueryBuilder的mongodb-support插件,你可以使用getMongo()
方法来获取可直接传递到db.collection.find()
的对象:
var rules_basic = {
condition: 'AND',
rules: [{
id: 'price',
operator: 'less',
value: 10.25
}, {
condition: 'OR',
rules: [{
id: 'category',
operator: 'equal',
value: 2
}, {
id: 'category',
operator: 'equal',
value: 1
}]
}]
};
$('#builder-basic').queryBuilder({
plugins: ['bt-tooltip-errors'],
filters: [{
id: 'name',
label: 'Name',
type: 'string'
}, {
id: 'category',
label: 'Category',
type: 'integer',
input: 'select',
values: {
1: 'Books',
2: 'Movies',
3: 'Music',
4: 'Tools',
5: 'Goodies',
6: 'Clothes'
},
operators: ['equal', 'not_equal', 'in', 'not_in', 'is_null', 'is_not_null']
}, {
id: 'in_stock',
label: 'In stock',
type: 'integer',
input: 'radio',
values: {
1: 'Yes',
0: 'No'
},
operators: ['equal']
}, {
id: 'price',
label: 'Price',
type: 'double',
validation: {
min: 0,
step: 0.01
}
}, {
id: 'id',
label: 'Identifier',
type: 'string',
placeholder: '____-____-____',
operators: ['equal', 'not_equal'],
validation: {
format: /^.{4}-.{4}-.{4}$/
}
}],
rules: rules_basic
});
$('.parse-json').on('click', function() {
var result = $('#builder-basic').queryBuilder('getMongo');
alert(JSON.stringify(result, null, 2));
});
<link href="https://stackpath.bootstrapcdn/bootstrap/3.4.0/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-PmY9l28YgO4JwMKbTvgaS7XNZJ30MK9FAZjjzXtlqyZCqBY6X6bXIkM++IkyinN+" crossorigin="anonymous">
<link href="https://cdn.jsdelivr/npm/[email protected]/dist/css/query-builder.default.min.css" rel="stylesheet">
<script src="https://code.jquery/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn/bootstrap/3.4.0/js/bootstrap.min.js" integrity="sha384-vhJnz1OVIdLktyixHY4Uk3OHEwdQqPppqYR8+5mjsauETgLOcEynD9oPHhhz18Nw" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr/npm/[email protected]/dist/js/query-builder.standalone.min.js"></script>
<div class="container">
<div class="col-md-12">
<div id="builder-basic"></div>
<div class="btn-group">
<button class="btn btn-primary parse-json" data-target="basic">Get Query</button>
</div>
</div>
</div>