我正在学习MongoDB。虽然JSON规范如下:
{"Website":"Stack overflow", "Popularity":"High"}
在Mongo JavaScript示例中我看到它:
{
name: "David",
score: 0
}
我尝试过以下示例:
text = '{"name": "Wallie"}';
text2 ='{name: "Wallie"}'
JSON.parse(text)
效果很好而JSON.parse(text2)
给出Syntax Error: Unexpected token
。
那么为什么MongoDBs JSON有所不同?
答案 0 :(得分:0)
我的理解如下:
以下
{"Website":"Stack overflow", "Popularity":"High"}
是使用键和值引用创建查询的完整方法。
这个例子
{name: "David",score: 0}
如果您使用 mongo shell ,是可以接受的,因为引号是隐式的(再次在mongo shell中)并且可以省略; shell会为你处理它。如果你没有使用shell,那么Quotes应该按照JSON规范存在。
我的建议是从mongodb开始从shell开始,而不是转移到他们的驱动程序支持的任何编程语言(java,python,js..etc)
希望有所帮助
答案 1 :(得分:0)
最后,我在https://docs.mongodb.org/manual/core/document/#document-format
找到了解决方案它是BSON而非JSON,MongoDB使用它。它类似于JavaScript对象表示法,并且与JSON兼容,因此存在混淆。