我正在为UPSERT
查询构建一个selectorObject。通常我会用selectorObject[“key”] = value;
添加所有selectObjects,但是如果要添加的条件是key = {$ gt:value},我该怎么办?
我尝试过以下方法:
1)selectorObject[“key”] = { $gt: value };
2)selectorObject["key"] = {"$gt": value };
3)selectorObject["key"].$gt = value;
前两个导致此错误消息:MongoError: The dollar ($) prefixed field '$gt' in 'key.$gt' is not valid for storage.
第三个陈述产生Exception in callback of async function: TypeError: Cannot set property '$gt' of undefined
一定有可能。我确实需要使用selectObject和modifierObject
表单,因为selectorObject
中的一些依赖于if子句。
编辑: 解决方案没有。 1如果它是UPDATE
,则表示有效(意味着在执行UPSERT
时存在包含这些选择的文档但在没有文档且基本上执行INSERT
时失败。后面部分的错误信息是:MongoError: The dollar ($) prefixed field '$gt' in 'key.$gt' is not valid for storage.
.dot符号只是写解决方案的另一种方式。因此也失败了。
仅供参考 - 我使用的是MongoDB v3.2和Meteor 1.1.0.3
提前感谢您的帮助!