gpt4 book ai didi

node.js - Mongoose 删除(拉)数组中的文档,不适用于 ObjectID

转载 作者:IT老高 更新时间:2023-10-28 13:04:13 27 4
gpt4 key购买 nike

我有以下 Mongoose 模式:

user = {
"userId" : "myId",
"connections":
[{
"dateConnectedUnix": 1334567891,
"isActive": true
}, {
"dateConnectedUnix": 1334567893,
"isActive": false
}]
}

我想删除 connections 数组中的第二项,得到以下内容:

user = {
"userId" : "myId",
"connections":
[{
"dateConnectedUnix": 1334567893,
"isActive": false
}]
}

以下代码按预期完成工作:

userAccounts.update(
{ 'connections.isActive': false },
{ $pull: { 'connections.isActive':false }},
function (err, val) {
console.log(val)
}
);

但是,我需要根据 ObjectId 删除。以下内容不起作用:

userAccounts.update(
{ 'connections._id': '1234-someId-6789' },
{ $pull: { 'connections._id': '1234-someId-6789' } },
function (err, val) {
console.log(val)
}
);

有什么建议吗?几个小时以来,我一直在用头撞屏幕(又名 Google、Stackoverflow 等),但运气不佳。

最佳答案

上面的代码好像不行。它甚至不应该适用于我给出的第一个示例。

最后我得到了这个答案的支持:MongoDB, remove object from array

这是我的工作代码:

userAccounts.update( 
{ userId: usr.userId },
{
$pull: {
connections: { _id : connId }
}
},
{ safe: true },
function removeConnectionsCB(err, obj) {
// ...
}
);

关于node.js - Mongoose 删除(拉)数组中的文档,不适用于 ObjectID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19786075/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com