两个Mongo查询之间的差异

时间:2014-05-12 10:45:28

标签: json mongodb

两个mongo查询之间有什么区别。

db.test.find({“field”:“Value”})

db.test.find({field:“Value”})

mongo shell接受两者。

3 个答案:

答案 0 :(得分:3)

你的例子没有区别。
当您的字段名称包含不能成为Javascript中标识符一部分的字符时(因为查询引擎在javascript repl / shell中运行),会出现问题 例如user-name,因为其中有一个连字符 然后你必须查询db.test.find({"user-name" : "Value"})

答案 1 :(得分:1)

对于mongo shell,没有实际的区别,但在其他一些语言案例中它确实很重要。

这里的实际案例是展示有效JSON的内容,作为一个给定的示例,我尝试在此论坛和其他人的回复中执行此操作,因为JSON是一种数据格式,可以很容易被“解析”为本机数据结构,其中备用的“JavaScript”表示法可能不那么容易翻译。

在某些情况下,需要引用,如:

 db.test.find({ "field-value": 1 })

或:

 db.test.find({ "field.value": 1 })

因为这些值将是“无效的JavaScript”。

但这里的真正意义是坚持JSON形式。

答案 2 :(得分:1)

您可以通过示例来理解:假设您有两个记录的测试集合

{     ' _id':ObjectId(" 5370a826fc55bb23128b4568"),     '姓名':' nanhe' }

{     ' _id':ObjectId(" 5370a75bfc55bb23128b4567"),     '你的名字':' nanhe' }

  

db.test.find({'你的名字':' nanhe'});

{" _id" :ObjectId(" 5370a75bfc55bb23128b4567"),"你的名字" :" nanhe" }

  

db.test.find({你的名字:' nanhe'});

SyntaxError:意外的标识符

相关问题