mongodb - MongoError : The dotted field .。对存储无效

标签 mongodb meteor schema

我正在尝试使用以下查询更新具有匹配嵌套属性的文档

upsertByCommentThreadId: function(commentThread) {
    return CommentThreads.update({
         'youtube.commentThreadId': commentThread.youtube.commentThreadId 
      },
      {
        $set: commentThread
      },
      {
        upsert: true
      }
    );
  }

架构:

Schema({
  youtube: {
    type: Object
  },
  'youtube.etag': {
    type: String
  },
  'youtube.commentThreadId': {
    type: String,
    index: 1
  },
  ...

但我得到一个错误

Exception while invoking method ... MongoError: The dotted field 'youtube.commentThreadId' in 'youtube.commentThreadId' is not valid for storage.

如果不是通过点表示法,我不确定我还能如何查询嵌套属性

最佳答案

这是mongo 3.6之前对字段名的限制,现在可以将mongo server升级到3.6或更高版本来解决这个问题。

https://docs.mongodb.com/manual/reference/limits/#naming-restrictions

关于mongodb - MongoError : The dotted field .。对存储无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014243/

相关文章:

javascript - 在客户端完成并行、异步调用后执行操作

Meteor Iron-router onBeforeAction this.next 未定义

node.js - 将 meteor 与 CoffeeScript 和 Jade 一起使用 : callback[i]. 调用不是函数

mongoDB - URL 作为文档 ID

database - 如何为未知数量的 'meta' 数据设计数据库

c# - 使 ASP.NET 身份在 Mongo 中存储用户数据(托管在 Heroku 上)

Python 相当于 db.getCollectionInfos

asp.net-mvc - 使用 MongoDB 托管 ASP.NET MVC 3 应用程序

spring - 在 Hibernate 3.3.1ga 和 HSQLDB 中使用带有模式名称的 @Table

javascript - 如何访问 MongoDB 查询中的子文档?