如何使用JSON在MongoDB中进行查询?
如果一个JSON字段与数据库中的某个字段匹配,MongoDB中是否仍然可以使用JSON进行查询并返回一个对象? 例如,我有一个名为keysArray的对象如何使用JSON在MongoDB中进行查询?,json,mongodb,Json,Mongodb,如果一个JSON字段与数据库中的某个字段匹配,MongoDB中是否仍然可以使用JSON进行查询并返回一个对象? 例如,我有一个名为keysArray的对象 { house: 'true', garden: 'false' } 我想在Mongo中进行查询,将此对象作为查询字段传递,并返回数据库中的某个对象是否至少与其中一个字段匹配: keysArray.forEach(function(key){ collection.find({keysArray}, functi
{ house: 'true', garden: 'false' }
我想在Mongo中进行查询,将此对象作为查询字段传递,并返回数据库中的某个对象是否至少与其中一个字段匹配:
keysArray.forEach(function(key){
collection.find({keysArray}, function(err, propertyMatch){
console.log(propertyMatch)
})
})
即使我的数据库中有一个与这些字段匹配的对象,我也没有返回任何对象
提前谢谢
…我想在Mongo中进行一个查询,将此对象作为
查询字段,并返回数据库中的某个对象是否与
这些字段中至少有一个
如果我听得懂的话,这听起来像是一个逻辑问题。在这种特定情况下,无法将类似JSON的对象传递给查询,因为这将是一个隐式的和逻辑条件。
因此,您应该首先构建一个OR表达式,并在
集合中使用它。find()
,如下所示:
var myjson = {'status': 32, 'profile': {$exists: false}};
function build_logic_or(json) {
var orExpr = [];
for (var field in json) {
var expr = {};
expr[field] = json[field];
orExpr.push(expr);
}
return {'$or': orExpr};
}
它将构建如下表达式:
{"$or":[{"status":32},{"profile":{"$exists":false}}]}
因此:
您是否输入了要传递给查询的对象?你有
.find({keysArray},func…
,你不想传递.find({key},func…
?是的,我试过了,但还是没有结果。听起来你想要json上的“或”逻辑
db.collection.find(build_logic_or(myjson))