由于Mongo是无模式的,因此可以知道文档可以有不同的密钥。
我处于一种情况,我需要搜索字段名称[即密钥名称]而不是其值。
我在很多地方看过它并发现可以使用$where
我意识到效率不高;但那没关系!因为它将在生产前进行一次调查。
所以我尝试构建查询,但是我无法生成预期结果,因为我知道密钥在数据库中可用。
我的JS代码:
function kName(){
for (var k in obj){
if (k.startsWith('gold')){
return obj
}
}
}
所以我用它如下:
db.nodes.find({$where: kName})
但我没有返回有效结果,因为我知道有一个'黄金'字段名称
然后我尝试了:db.nodes.find({$where: kName()})
再次失败。
然后我修改了函数:
function kName(obj){
for (var k in obj){
if(k.startsWith('gold')){
return obj
}
}
}
我又试过了 db.nodes.find({$ where:kName()}) 并且失败了。
然后尝试了
db.nodes.find({$where: kName(obj)})
所以我的问题是:
如何使用我自己的JS函数来利用Mongodb中的$ where子句来查找字段名称。
答案 0 :(得分:0)