两个mongo查询之间有什么区别。
db.test.find({“field”:“Value”})
db.test.find({field:“Value”})
mongo shell接受两者。
答案 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:意外的标识符