0

オブジェクトの配列を含む mongodb コレクションがあり、プロパティに基づいて 1 つ以上の配列オブジェクトを削除したいと考えています。

私のコレクションからのドキュメントの例:

nickname: "Bob",
isLibrarian: false,
region: "South America",
favoriteBooks: [
    {
        title: "Treasure Island",
        author: "Robert Louis Stevenson"
    },
    {
        title: "The Great Gatsby",
        author: "F. Scott Fitzgerald"
    },
    {
        title: "Kidnapped",
        author: "Robert Louis Stevenson"
    }
]

この例では、コレクション内の各ドキュメントから、著者が "Robert Louis Stevenson" と一致する favoriteBook 配列内のすべてのオブジェクトを削除するにはどうすればよいでしょうか?

その後、このユーザードキュメントは

nickname: "Bob",
isLibrarian: false,
region: "South America",
favoriteBooks: [
    {
        title: "The Great Gatsby",
        author: "F. Scott Fitzgerald"
    }
]

コレクション内の他のドキュメントは、スティーブンソンによって本から等しくトリミングされます。

洞察を事前にありがとうございます!私はMongoDBが大好きですが、ここで噛むことができる以上に噛んだのではないかと思っています...

4

1 に答える 1

2

以下のmongodbの行は、特定の著者に一致する本を削除するのに役立ちます

db.collection.update(
   {},
   {$pull:{favoriteBooks:{author:"Robert Louis Stevenson"}}},
   {multi:true}
);
于 2013-03-04T04:56:31.453 に答える