Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor如何允许客户端MongoDB查询更新服务器?_Javascript_Meteor - Fatal编程技术网

Javascript Meteor如何允许客户端MongoDB查询更新服务器?

Javascript Meteor如何允许客户端MongoDB查询更新服务器?,javascript,meteor,Javascript,Meteor,客户端如何在浏览器(客户端)上执行MongoDB查询,以及如何自动更新到服务器端?DDP协议是如何工作的 mongodb如何在客户端工作?Meteor在客户端运行一个名为Minimongo的仅JavaScript版本的Mongo。它使用协议将结果发送回服务器,如果规则允许,服务器将结果写入底层MongoDB。你可以阅读更多关于Minimong、DDP和反应性的信息 Minimongo本质上是纯JavaScript中Mongo的内存内、非持久性实现。它充当一个本地缓存,只存储该客户机正在使用的数据

客户端如何在浏览器(客户端)上执行MongoDB查询,以及如何自动更新到服务器端?DDP协议是如何工作的


mongodb如何在客户端工作?

Meteor在客户端运行一个名为Minimongo的仅JavaScript版本的Mongo。它使用协议将结果发送回服务器,如果规则允许,服务器将结果写入底层MongoDB。你可以阅读更多关于Minimong、DDP和反应性的信息

Minimongo本质上是纯JavaScript中Mongo的内存内、非持久性实现。它充当一个本地缓存,只存储该客户机正在使用的数据库的子集。客户端(find)上的查询直接从该缓存中提供,而无需与服务器通信

这说明了Minimongo的工作原理:

嗨,我写了(Minimongo的第一个版本:)是的,它只是使用JavaScript对象来表示Mongo文档,我在JavaScript中重新实现了Mongo查询和更新$-操作符(文档中提到了一些例外)。困难的部分是弄清楚操作符的确切语义,因为10gen文档没有详细介绍边缘案例。因此,我打开了一个Mongo shell,找出mongod是如何处理每个edge案例的,然后编写一个minimongo单元测试,以确保它做了相同的事情

除了10gen原语之外,它还有一些代码,用于保存针对数据库的实时查询列表(Meteor的observe()API),并发送添加/删除/移动/更改消息以使查询保持最新。这相当于在对象发生更改时检查实时查询列表

[……]

还有一些代码用于执行数据库快照和恢复,这些代码用于实现延迟补偿(将数据库分叉以在本地应用预测的更改,然后回滚该更改,并在到达后用服务器的正式结果替换)


意味着客户端可以执行db查询客户端更正,然后通过允许/拒绝规则处理其安全性-查看他们使用的是正确的节点光纤,但其不基于回调工作,但基于nodejs主要功能回调工作原理,抱歉,我已经给了你很多信息,但是我很难理解你想要什么。你需要多学一点英语。请再检查一下我的答案。我对它进行了编辑,添加了一个指向DDP的链接,DDP是用于客户端和服务器之间通信的协议。@Lukasz(我不能@键入你的花哨用户名):你能提供一些关于为什么这个问题不清楚的提示吗?无论如何,丹。非ASCII首字母不是问题:如果Łukasz在有效通知目标列表中。(当然,你也可以使用复制粘贴。)@Josh:太棒了:)所以我除了去MSO之外别无选择,那么@JoshCaswell:是不是错了?它建议提到每个闭门器,来自一个在meta上有22k rep的用户。@DanDascalescu,它确实是不正确的,是的。