小编Jer*_*unn的帖子

在服务器上查找流星用户

以下服务器方法会抛出重复的键错误,因为找不到用户.典型的查询是:{services:{facebook:{id:'XXXX'}}}

Meteor.methods
  getUser: (query, data = {}) ->
    user = Meteor.users.findOne(query)
    return user if user?
    user = _.extend(data, query)
    user._id = Meteor.users.insert user
    return user
Run Code Online (Sandbox Code Playgroud)

我的理解是服务器方法可以访问集合中的所有文档,那么为什么不能找到用户但由于重复的facebook id而导致插入失败?

这完全适用于我的osx dev环境,但在我的ubuntu服务器(捆绑)上失败并在NODE_ENV = production上运行.

这是日志输出:

data:    { services: { facebook: { id: 'xxxx' } } } (the query provided to getUser)
data:    undefined (the result of findOne)
data:    Exception while invoking method 'getUser' MongoError: E11000 duplicate key error index: thunderstruck.users.$services.facebook.id_1  dup key: { : "xxxx" }
data:        at Db.wrap (/home/jeremy/deploy/thunderstruck/releases/20121105202012/bundle/server/node_modules/mongodb/lib/mongodb/db.js:1904:11)
data:        at null.<anonymous> …
Run Code Online (Sandbox Code Playgroud)

mongodb meteor

7
推荐指数
1
解决办法
4651
查看次数

标签 统计

meteor ×1

mongodb ×1