通过与猫鼬中的不同数组匹配从嵌入式数组中删除元素
Removing elements from embedded array by matching with different array in mongoose
我的 Mongodb 中有一个嵌入的推文数组,每条推文都有一个推文 ID(不要与 mongodb 分配的 ID 混淆)。
{
"_id": {
"$oid": "54d95cb062917897ad26c5e5"
},
"name": "foo",
"tweets": [
{
"tweetID": "1234",
"text": "bla bla bla"
},
{
"tweetID": "4321",
"text": "bla bla bla",
}
... and so on
现在在我的应用程序中,我有另一个数组,其中包含应删除的 tweetID。
var tweetsToBeDeleted = [ "1234", "4321" ];
我正试图让猫鼬这样做:
ChannelsModel.update( { },
{ $pull: { tweets: { $elemMatch: { tweetID: tweetsToBeDeleted } } } },
{ multi: true },
function ( err ) {
console.log( "err - " + err );
}
);
但是当我尝试 运行 时,没有任何内容被删除。将执行错误回调,但 err
是 null
.
有什么想法吗?
提前致谢!
将一个字段与多个值匹配时使用$in
:
var tweetsToBeDeleted = [ "1234", "4321" ];
ChannelsModel.update( { },
{ $pull: { tweets: { tweetID: { $in: tweetsToBeDeleted } } } },
{ multi: true },
function ( err ) {
console.log( "err - " + err );
}
);
我的 Mongodb 中有一个嵌入的推文数组,每条推文都有一个推文 ID(不要与 mongodb 分配的 ID 混淆)。
{
"_id": {
"$oid": "54d95cb062917897ad26c5e5"
},
"name": "foo",
"tweets": [
{
"tweetID": "1234",
"text": "bla bla bla"
},
{
"tweetID": "4321",
"text": "bla bla bla",
}
... and so on
现在在我的应用程序中,我有另一个数组,其中包含应删除的 tweetID。
var tweetsToBeDeleted = [ "1234", "4321" ];
我正试图让猫鼬这样做:
ChannelsModel.update( { },
{ $pull: { tweets: { $elemMatch: { tweetID: tweetsToBeDeleted } } } },
{ multi: true },
function ( err ) {
console.log( "err - " + err );
}
);
但是当我尝试 运行 时,没有任何内容被删除。将执行错误回调,但 err
是 null
.
有什么想法吗?
提前致谢!
将一个字段与多个值匹配时使用$in
:
var tweetsToBeDeleted = [ "1234", "4321" ];
ChannelsModel.update( { },
{ $pull: { tweets: { tweetID: { $in: tweetsToBeDeleted } } } },
{ multi: true },
function ( err ) {
console.log( "err - " + err );
}
);