为什么nodejs-mongodb中间件与mongo shell有不同的语法?

即使我使用node-mongodb-native ,我必须以略微不同的方式使用略有不同的function,而不是我在mongodb shell中写入的函数。

  1. 为什么地球更好?
  2. 有没有办法使用绝对相同的语法,我用在terminalmongodbshell?
  3. 如果是这样,是否有缺点? 例如,在PostgreSQL的情况下,中间件有一些有用的function,如SQL注入防护等。

如果你可以发表一个你想比较的相同function的两个版本的例子,那么我可以给你一个更好的解释,但是因为你没有提供任何例子,所以我只能说一般。

一些差异是因为Mongo shell依次执行所有的事情。 在Node中,您必须使用callback或承诺来进行stream量控制,而这在Mongo shell中并不是这样做的。

在访问集合的方式上也有一些差异。 在Mongo shell中,通常使用db.collectionName

在Mongo shell中也有一些预定义的东西,例如与对象id相关的函数。

最后,Mongo使用BSON来处理数据,在Node中使用JavaScript对象文字(更像JSON,但不太严格)。

节点使用V8加上额外的function,而Mongo shell使用SpiderMonkey,没有Node中可用的function。

这一切都有微妙的差异的后果。

有关更多详情,请参阅

  • 我可以在node-mongodb-native驱动程序中执行原始的MongoDB查询吗?