问题标签 [minimongo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mongodb - 当我尝试更新包含数组的文档时出现 Minimongo 错误
我在使用 angular-meteor 更新文档中包含的数组时遇到问题。Minimongo 抛出错误documentMatches needs a document
。
更新时引发此错误的文档如下所示。它包含的一件事是一个 s 数组_id
。该数组包含某些特定文档的显示顺序。它看起来像这样:
我已将其附加$scope.meteorObject
到一个名为$scope.settings
. 当我从这个数组中删除一个项目然后用 保存时.save()
,我得到了错误。有趣的是,当我将一个项目添加到数组中,然后保存时,就没有问题了!我还可以毫无问题地将其他键添加到设置对象。这只是导致问题的数组。
我使用 chrome 的调试器查看抛出错误时发生了什么,下面是抛出错误的代码:
疯狂的是,doc
这实际上是 profileQuestionsOrder 数组中的第一项——它只是一个包含文档 ID 的字符串。似乎 miniMongo 对这个数组感到困惑。我可以放入任何其他属性,并且没有错误。但是当我从这个数组中删除一个项目时,它就出现了问题。
顺便说一句,当我不将对象保存到数据库时,我可以看到它已正确更改,从数组中拼接了一个元素。
mongodb - Meteor 如何在客户端创建唯一的 MongoDB _id?
根据有关该功能的Meteor 文档,Mongo.Collection.insert()
insert 将为您传递的对象生成一个唯一的 ID,将其插入到数据库中,并返回该 ID。
它也可以异步工作:
如果您确实提供了回调,insert 仍会立即返回 ID。
是否可以保证生成的 _id 是全局唯一的?Meteor 的 Minimongo 是如何在客户端生成这样一个 _id 的呢?
mongodb - 服务器端 Meteor 脚本上的 Minimongo 错误?
我想将元素推送到 mongo 数组,并且我有这个查询应该与当前版本的流星 mongo (2.6.7) 一起使用。
这是查询:
...这是minimongo错误...打印到服务器控制台!
我可能遗漏了一些关于 minimongo <-> mongo 连接的信息,但是服务器端方法怎么可能受到 minimongo 实现的限制呢?
javascript - Meteor.js 有重新渲染事件吗?
当 Meteor.js 中的 minimongo db 更改时,是否会触发重新渲染事件或事件?
我正在使用流星 js 制作信使,当我收到新消息时需要向下滚动,并且应该在流星插入新消息(html)时完成。
meteor - Meteor 如何处理依赖失败的乐观操作?
Meteor 的乐观 UI 如何处理依赖操作的服务器拒绝和错误?
如果我做 :
如果op1
在服务器端失败但在客户端成功,会发生op2
什么op3
?
他们都会被回滚吗?
javascript - 如何判断 Meteor minimongo 何时与 mongo 服务器同步
我有一个 Meteor 应用程序,当客户端对已发布集合所做的所有更改都已写入服务器时,我希望能够在客户端进行检查。
我查看了minimongo和ddp-server中的代码,但我没有看到任何直接的方法来判断更改何时成功写入服务器。
Minimongo 概述了保存数据的过程:
- 用户在客户端触发交互
- 模拟将一些突变应用于本地状态
- 触发 RPC 以在服务器上执行
- 一段时间后,RPC 会返回结果
- 再过一段时间,RPC 返回一条“更新”消息(在 DDP 级别),这意味着来自 RPC 的所有更改都已持久化
- 此时我们知道,来自服务器的所有实际更改都是同步的,我们可以丢弃模拟的突变(保留来自服务器的真实更改)
我可以覆盖LocalCollection.prototype.saveOriginals
并LocalCollection.prototype.retrieveOriginals
知道它们何时被调用,但我不确定如何验证数据何时实际保存。retrieveOriginals
即使 Meteor 服务器关闭,也会被调用。
是否有任何其他地方可以挂钩回调或监听事件以了解何时同步更改?
mongodb - 流星 mongo 驱动程序可以处理 $each 和 $position 运算符吗?
我正在使用最新的流星包开发流星应用程序。我想在 mongo 文档数组中重新定位一个项目。为此,我$pull
将它从数组中取出,然后根据mongoDB 文档$push
将它放在特定位置。index
Meteor/Mongo 抛出以下错误:
更新失败:MongoError:无法规范化查询:BadValue 未知顶级运算符:$each
我首先实现了这个客户端。由于 minimongo 的限制,我认为它不起作用。
我写了一个方法来处理这个服务器端,但我最终得到了同样的错误。
这个请求有什么问题,流星可以处理 $each 运算符吗?
编辑:我试图将它直接插入 robomongo,它起作用了。Mongo 版本,输入时db.version()
返回 2.6.7
* EDIT2:我没想到它,所以我之前没有检查:更新适用于$pull
和$push
。但是,即使实际更新了数据,我仍然会收到错误消息。
*编辑:这是一些示例数据:
chunks
是我在该位置my_array
拉和推的数组my_item.id
index
arrays - MongoDB - 仅投影数组中的匹配元素
如何从具有以下结构的 Mongo 文档的数组中获取一个元素:
例如,我需要得到史蒂夫,在这种情况下,结果必须如下所示:
或者:{type: 'dog', name: 'Steve'}
我知道如何在发布时制作它,但我需要在整个数组可用的客户端制作它,我可以使用 forEach 从数组中返回这个值,但我正在寻找更优雅的方式(使用 Mongo 查询)。
javascript - 嵌套数组的排序不会导致顺序发生变化
我有一个使用以下结构定义的集合:
我想以正确的评论顺序显示此信息。这意味着在我的情况下,首先是最新的评论。
我尝试使用:
和:
但顺序保持不变 - 首先是最旧的评论。
知道我错过了什么吗?
mongodb - Meteor mongo 数组每个都返回错误
我有一个包含以下条目的集合
当我通过流星查询mongo的字段communicationWith时,如果我做一个console.log(communicatingWith)
,输出是
[ 'KMT74bWPoZxDSKdrx', 'KMT74bWPoZxDSKdrx' ]
。
即使我这样做console.log(communicatingWith.length)
,输出也是 2
但是当我这样做时
它抛出错误说
你能帮我理解哪里出了问题吗?