我是最后一个对事情挑剔的人,但似乎在我学习MongoDB时,我看到的查询,插入等等并不是我所理解的严格的JSON。我的意思是所有键都应该有引号,以及不是数字的值。关于JSON本身我是错的,或者MongoDB是不是对使用类似JSON的语法如此挑剔?这可能是这里的关键术语,“类JSON”语法。 谢谢, 布鲁斯
答案 0 :(得分:1)
MongoDB首先不使用JSON。它使用BSON,它有点类似于外部的JSON,但支持更多类型,更重要的是,它是二进制,而不是文本。
这意味着在 no 语言/驱动程序中MongoDB查询JSON。
大多数MongoDB驱动程序使用基础语言的字典(哈希映射)类型来表示查询,例如:
# Python example
blah = collection.find({'foo': 'bar'})
请注意{'foo': 'bar'}
是一个Python字典,而不是JSON字符串。 MongoDB驱动程序(本例中为PyMongo)在将数据发送到数据库之前接受该数据并将其序列化为BSON。无论数据库发送回什么内容都将是BSON - 驱动程序将其反序列化并将其作为本机Python数据结构返回给您。
在我看过MongoDB支持的其他语言中也会发生同样的事情。 JSON 永远不会使用。