如果我们运行类似于
的代码,Mongodb 足以快速创建数据库/集合db.store.save({a: 789});
它会自动创建 store
集合并向其中添加一个文档。
我的 javascript 理解表明,不可能在 db
对象的未定义属性上调用方法。它应该导致某种错误/异常。
我很想了解幕后发生的事情,如果有任何有用的链接,请指出我。谷歌搜索对我没有多大帮助。
最佳答案
在 JavaScript 中,有一种方法可以定义一个函数,该函数将在调用未定义的方法时执行。
例子:
var o = {
__noSuchMethod__: function(id, args) { console.log(id, '(' + args.join(', ') + ')'); }
};
o.foo(1, 2, 3);
o.bar(4, 5);
o.baz();
// Output
// foo (1, 2, 3)
// bar (4, 5)
// baz ()
请注意,这是一项非标准功能,目前仅适用于 Firefox。
我不知道 MongoDB 是如何实现这个功能的,但我只是为了报告可以通过这种方式完成。
更多详情见:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/noSuchMethod
https://stackoverflow.com/questions/28064159/
相关文章:
javascript - 使用 express 将 MongoDB 查询结果作为 JSON 发送
node.js - 在 docker 容器中安装 Mongoose
mongodb - 为什么 Spring Data MongoDB 无法实例化这种嵌套类型结构?
mongodb - 如何将 MongoDB 聚合用于通用集合操作(联合、交集、差异)
java - Spring数据mongodb审计不起作用..(Java配置)
mongodb - 为什么 MongoDB 可以创建唯一索引而 Mongoid 不能?