首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >流星。MongoDB插入错误: TypeError: keypath.split不是函数。(在'keypath.split('.')‘中,'keypath.split’未定义)

流星。MongoDB插入错误: TypeError: keypath.split不是函数。(在'keypath.split('.')‘中,'keypath.split’未定义)
EN

Stack Overflow用户
提问于 2016-09-08 09:40:44
回答 1查看 182关注 0票数 0

Foo是我的MongoDB collection。在这里,我只有一个document

代码语言:javascript
复制
{
  0: {code: "basic", caption: "basic", points: 100},
  1: {code: "gold", caption: "gold", points: 200},
  2: {code: "platinum", caption: "platinum", points: 300},
  3: {code: "diamond", caption: "diamond", points: 400}, 
  id: "PnpbhFi8m7NqZXRr6"
}

当我尝试upsert时,我会收到以下错误:

代码语言:javascript
复制
TypeError: keypath.split is not a function. (In 'keypath.split('.')', 'keypath.split' is undefined)

这是我的密码:

代码语言:javascript
复制
const data = [
  {
    "code": "basic",
    "caption": "basic",
    "points": 100
  },
  {
    "code": "gold",
    "caption": "gold",
    "points": 200
  },
  {
    "code": "platinum",
    "caption": "platinum",
    "points": 300
  },
  {
    "code": "diamond",
    "caption": "diamond",
    "points": 400
  }
];

const doc = Foo.findOne();
Foo.upsert(doc._id, { $set: data });

我的错误在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-08 15:11:23

你用错了$set。您必须将对象传递给$set

代码语言:javascript
复制
Foo.update(doc._id, {
  $set: {
    4: data[0],
    5: data[1],
    6: data[2],
    7: data[3],
  }
});

此外,您也不必使用upsert。来自流星博士关于upsert的报道

修改集合中的一个或多个文档,如果没有找到匹配的文档,则插入一个文档。

但是您的文档是存在的,所以不需要upsert,请使用update

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39387548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档