mongodb:检查JSON中是否存在该字段
在MongoShell中,我试图检查推送到变量中的JSON是否具有字段名。但是,由于缺少某些内容,我得到了一个错误mongodb:检查JSON中是否存在该字段,json,mongodb,Json,Mongodb,在MongoShell中,我试图检查推送到变量中的JSON是否具有字段名。但是,由于缺少某些内容,我得到了一个错误 var p= db.monit.findOne({_id: 0}) if ("p.pay[0].reR": {$exists: true}) print(p.pay[0].reR) 在上面的代码中,我试图检查推入变量p的JSON文档中是否存在reR字段,在查询中使用操作符如下: var p = db.monit.findOne({ "_id": 0, "p
var p= db.monit.findOne({_id: 0})
if ("p.pay[0].reR": {$exists: true})
print(p.pay[0].reR)
在上面的代码中,我试图检查推入变量p
的JSON文档中是否存在reR
字段,在查询中使用操作符如下:
var p = db.monit.findOne({
"_id": 0,
"pay.0.reR": { "$exists": true }
})
if (p !== null) printjson(p.pay[0].reR)
这将查找对上述查询进行统计的文档,其中_id的值为0,并且
中有一个属性为reR的嵌入文档,作为支付
数组的第一个元素(使用)。在查询中使用操作符,如下所示:
var p = db.monit.findOne({
"_id": 0,
"pay.0.reR": { "$exists": true }
})
if (p !== null) printjson(p.pay[0].reR)
这将查找一个文档,该文档统计上述查询,其中_id的值为0
,并且
在那里一个嵌入文档,其属性为reR
,作为pay
数组的第一个元素(使用)。我认为您应该尝试使用
var p=db.monit.findOne({_id: 0});
var q = db.monit.findOne("p.pay[0].reR": {$exists: true});
if(q)
print(p.pay[0].reR);
我想你应该试试
var p=db.monit.findOne({_id: 0});
var q = db.monit.findOne("p.pay[0].reR": {$exists: true});
if(q)
print(p.pay[0].reR);
你在混合两种不同的东西。 必须在mongoDB查询中使用。 这里需要的是javascript方法。 像这样使用它:
var p= db.monit.findOne({_id: 0})
if ( p.pay[0].hasOwnProperty("reR")){
print(p.pay[0].reR);
}
你在混合两种不同的东西。 必须在mongoDB查询中使用。 这里需要的是javascript方法。 像这样使用它:
var p= db.monit.findOne({_id: 0})
if ( p.pay[0].hasOwnProperty("reR")){
print(p.pay[0].reR);
}
我无法在初始级别检查此项,因为该字段是否存在,我需要执行一些其他操作,如果该字段存在,则需要执行额外的计算。因此,我想检查变量
p
中是否存在该字段。我无法在初始级别检查该字段,因为该字段是否存在,我需要执行一些其他操作,如果该字段存在,则需要执行额外的计算。因此,我想检查变量p
中是否存在该字段。它给我空值。虽然我进行了修改以从这个查询中获得解决方案,但我正在寻找一个优化的查询,在将数据加载到变量中之后,我不会回顾集合。这可能吗?它给我空值。虽然我进行了修改以从这个查询中获得解决方案,但我正在寻找一个优化的查询,在将数据加载到变量中之后,我不会回顾集合。这可能吗?@felix:它正在工作。。。。。。。。。。你能把这个贴出来作为答案吗。我会在你发帖后做标记。@felix:它正在工作。。。。。。。。。。你能把这个贴出来作为答案吗。我会在你发帖后做标记。