猫鼬-检查`upsert`是否制作了新文档

时间:2019-02-08 00:41:51

标签: node.js mongodb mongoose mongodb-query

是否有办法知道Mongoose的return fetch(url_get_tx,{ method: 'get', headers: { 'Content-type': 'application/json' 'authorization': 'Bearer '+data.token } }) .then(function(data) { return data.json() }).then(result => console.log(result)) 选项是否通过等待制作了新文档?本质上,我想做this,除非没有回调。

注意:我正在使用text=[text]

1 个答案:

答案 0 :(得分:2)

猫鼬功能的callbackasync await甚至与.then都没有区别

回调

User.update({ _id: usr._id }, upsertData, { upsert: true }, function(err, num) {
  console.log(err)
  console.log(num)
}

异步等待

try {
  const num = await User.update({ _id: usr._id }, upsertData, { upsert: true })
  console.log(num)  
} catch (err) {
  console.log(err)
}

所以基本上以上两个函数都会记录相同的内容

现在,您要使用findOneAndUpdate(findByIdAndUpdate)检查返回的文档是否已更新或重新插入

const num = await User.findOneAndUpdate({ _id: id }, upsertData, { upsert: true })
console.log(num) 

因此,num在这里将打印文档(如果已经存在)或(如果已插入)。