javascript - mongodb:从嵌套的引用数组中提取一项

标签 javascript node.js mongodb mongoose

我有一个嵌套的引用数组

const userSchema = new Schema(
  {
    _id: Schema.Types.ObjectId,
    name: String,
   posts: [{ type: Schema.Types.ObjectId, ref: "Post" }]
  }
);

我想从该数组中删除一个引用,我认为使用这很容易

 User.update({ name: currentName}, { $pull: { posts: postId }});

这个和类似的变体

 User.update(
    { name: currentName},
    { $pull: { posts: mongoose.Types.ObjectId(postId) } }
  );

或使用findOneAndUpdate都对我不起作用。

postId 的格式例如 "5c150b855999681f7423aacb"

最佳答案

User.findOneAndUpdate({
_id: mongoose.Types.ObjectId('YOUR_DATA_ID')
},
{ name: currentName,
{ $pull: { posts: mongoose.Types.ObjectId(postId) } }
);

关于javascript - mongodb:从嵌套的引用数组中提取一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53794119/

相关文章:

javascript - 为什么谷歌地图折线描边颜色总是黑色?

javascript - 添加一个新的事件处理程序以首先运行

javascript - Cursor.forEach 不是 Node.js 函数

MongoDB 创建唯一字段但未建立索引?

javascript - 仅定义 mongoose 和 Schema

javascript - 在 Javascript 中使方法全局可访问

javascript - 甜蜜警报不起作用

javascript - npm install robotjs 在构建二进制文件时失败

node.js - connect中间件中的bodyParser()有什么作用?

node.js - 如何通过使用填充或在 mongodb 中使用聚合进行内部查询来使用填充功能