mongodb / mongoose findAndModify setoninsert

时间:2016-09-02 08:55:55

标签: javascript mongodb mongoose

我试图在统计数据中找到用户,如果他们不存在,请创建它们并给我信息。

启动已执行,但我在其他console.logs或响应中没有得到任何响应。

我该如何解决这个问题?

console.log("starting");
var playerid = "57c435669f437e007b974fbb";

Crimestats.findAndModify({ query: { userid : playerid}, update: { $setOnInsert: { userid : playerid }}}).then( function(err, stats){
             if (err) {
            console.log(err);
        }

            console.log("got any results");
            console.log(stats);

            resolve(stats);

        });

只有回复:

starting

1 个答案:

答案 0 :(得分:1)

如果不存在,您需要添加插入新选项的选项,因此需要添加upsert: true

可以尝试一下:

var playerid = "57c435669f437e007b974fbb";

Crimestats.findAndModify({
  query:{ userid : playerid},
  update: {
    $set: { name: "xxx" }, // if found update name or when insert
    $setOnInsert: { userid : playerid }
  },
  upsert: true
 }
).then( function(err, stats){
  if (err) {
    console.log(err);
  }
  console.log("got any results");
  console.log(stats);

  resolve(stats);
});