Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
mongodb:在查询中使用$where时意外标记非法_Mongodb - Fatal编程技术网

mongodb:在查询中使用$where时意外标记非法

mongodb:在查询中使用$where时意外标记非法,mongodb,Mongodb,在我的收藏中,我有一个叫做anchorDates的字段 { anchorDates: { "12345:TS" : "2015-07-16T18:10:15+00:00" } } 我尝试了一个使用$where的查询: db.members.find({$where:function(){return this[anchorDates][12345:TS]=="2015-07-16T18:49:04+00:00"}}) 它给出了一个错误 Unexpected t

在我的收藏中,我有一个叫做anchorDates的字段

{
    anchorDates: {
        "12345:TS" : "2015-07-16T18:10:15+00:00"
    }
}
我尝试了一个使用$where的查询:

db.members.find({$where:function(){return this[anchorDates][12345:TS]=="2015-07-16T18:49:04+00:00"}})
它给出了一个错误

Unexpected token ILLEGAL
我也试过了

db.members.find({$where:function(){return this.anchorDates.12345:TS=="2015-07-16T18:49:04+00:00"}})

得到同样的错误,我认为这是因为冒号在12345和TS之间,但不知道如何查询这个。谢谢

如果使用括号,则需要引用字符串:

this['anchorDates']['12345:TS']
或:

在你的例子中,哪一个是:

db.members.find({$where:function(){return this["anchorDates"]["12345:TS"]=="2015-07-16T18:49:04+00:00"}})
但如果可以,您应该使用更直接的查询:

db.members.find({"anchorDates.12345:TS":"2015-07-16T18:49:04+00:00"})

如果其他查询操作符都不起作用,那么使用
$where
是最后的选择。查看以了解更多信息。

请尝试带引号的“12345:TS”。db.members.find({$where:function(){return this[anchorDates]['12345:TS']==“2015-07-16T18:49:04+00:00”}}})@Makoton我试过了,但有错误“$err”:“ReferenceError:anchorDates没有定义\n,我应该使用function(){return this.anchorDates['12345:TS']}来代替,谢谢你!第一个似乎不适用于错误:$err:ReferenceError:anchorDates未定义,但第二个可以正常工作。是的,在这个简单的例子中,我不应该使用$where,但是我有很多东西要添加到我的代码中,所以我必须使用,非常感谢@user2810081很高兴它能为您工作,尽管我不确定第一个错误是如何产生的,因为它只是一个字符串而不是一个变量。当程序试图引用未定义的值时,会出现此错误。
db.members.find({"anchorDates.12345:TS":"2015-07-16T18:49:04+00:00"})