zoukankan      html  css  js  c++  java
  • MongoDB

    Delete Methods

    MongoDB provides the following methods to delete documents of a collection:

    Method Description
     db.collection.remove()  Delete a single document or all documents that match a specified filter.
     db.collection.deleteOne()

     Delete at most a single document that match a specified filter even though multiple documents may match the specified filter.

     New in version 3.2.

     db.collection.deleteMany() 

     Delete all documents that match a specified filter.

     New in version 3.2.

    You can specify criteria, or filters, that identify the documents to delete. These filters use the same syntax as read operations:

    • query filter document can specify equality condition with <field>:<value> expressions to select all documents that contain the <field> with the specified <value>:
      { <field1>: <value1>, ... }
    • query filter document can use the query operators to specify conditions in the following form:
      { <field1>: { <operator1>: <value1> }, ... }

    Delete Behavior

    Indexes

    Delete operations do not drop indexes, even if deleting all documents from a collection.

    Atomicity

    All write operations in MongoDB are atomic on the level of a single document. For more information on MongoDB and atomicity, see Atomicity and Transactions.

    Example Collection

    This page provides examples of remove operations in the mongo shell. To populate the users collection referenced in the examples, run the following in mongo shell:

    NOTE: If the users collection already contains documents with the same _id values, you need to drop the collection (db.users.drop()) before inserting the example documents.

    db.users.insertMany(
      [
         {
           _id: 1,
           name: "sue",
           age: 19,
           type: 1,
           status: "P",
           favorites: { artist: "Picasso", food: "pizza" },
           finished: [ 17, 3 ],
           badges: [ "blue", "black" ],
           points: [
              { points: 85, bonus: 20 },
              { points: 85, bonus: 10 }
           ]
         },
         {
           _id: 2,
           name: "bob",
           age: 42,
           type: 1,
           status: "A",
           favorites: { artist: "Miro", food: "meringue" },
           finished: [ 11, 25 ],
           badges: [ "green" ],
           points: [
              { points: 85, bonus: 20 },
              { points: 64, bonus: 12 }
           ]
         },
         {
           _id: 3,
           name: "ahn",
           age: 22,
           type: 2,
           status: "A",
           favorites: { artist: "Cassatt", food: "cake" },
           finished: [ 6 ],
           badges: [ "blue", "red" ],
           points: [
              { points: 81, bonus: 8 },
              { points: 55, bonus: 20 }
           ]
         },
         {
           _id: 4,
           name: "xi",
           age: 34,
           type: 2,
           status: "D",
           favorites: { artist: "Chagall", food: "chocolate" },
           finished: [ 5, 11 ],
           badges: [ "red", "black" ],
           points: [
              { points: 53, bonus: 15 },
              { points: 51, bonus: 15 }
           ]
         },
         {
           _id: 5,
           name: "xyz",
           age: 23,
           type: 2,
           status: "D",
           favorites: { artist: "Noguchi", food: "nougat" },
           finished: [ 14, 6 ],
           badges: [ "orange" ],
           points: [
              { points: 71, bonus: 20 }
           ]
         },
         {
           _id: 6,
           name: "abc",
           age: 43,
           type: 1,
           status: "A",
           favorites: { food: "pizza", artist: "Picasso" },
           finished: [ 18, 12 ],
           badges: [ "black", "blue" ],
           points: [
              { points: 78, bonus: 8 },
              { points: 57, bonus: 7 }
           ]
         }
      ]
    )
    View Code

    Delete All Documents

    To remove all documents from a collection, pass an empty filter document {} to either thedb.collection.deleteMany() or the db.collection.remove() method.

    db.collection.deleteMany()

    The following example uses the db.collection.deleteMany() method to delete all documents from the users collection:

    db.users.deleteMany({})

    The method returns a document with the status of the operation:

    { "acknowledged" : true, "deletedCount" : 6 }

    For more information and examples, see db.collection.deleteMany().

    db.collection.remove()

    Alternatively, the following example uses the db.collection.remove() method to delete all documents from the users collection:

    db.users.remove({})

    To delete all documents from a collection, it may be more efficient to use the db.collection.drop() method to drop the entire collection, including the indexes, and then recreate the collection and rebuild the indexes.

    Delete All Documents that Match a Condition

    To delete all documents that match a deletion criteria, pass a filter parameter to eitherdb.collection.deleteMany() method or the db.collection.remove() method.

    db.collection.deleteMany()

    The following example uses db.collection.deleteMany() to remove all documents from the userscollection where the status field equals "A":

    db.users.deleteMany({ status : "A" })

    The method returns a document with the status of the operation:

    { "acknowledged" : true, "deletedCount" : 3 }

    db.collection.remove()

    Alternatively, the following example uses db.collection.remove() to remove all documents from theusers collection where the status field equals "P":

    db.users.remove( { status : "P" } )

    For large deletion operations, it may be more efficient to copy the documents that you want to keep to a new collection and then use db.collection.drop() on the original collection.

    Remove Only One Document that Matches a Condition

    To delete at most a single document that match a specified filter,even though multiple documents may match the specified filter, use either the db.collection.deleteOne() method or the db.collection.remove() method with the <justOne> parameter set to true or 1.

    db.collection.deleteOne()

    The following example uses db.collection.deleteOne() to delete the first document where statusis "D".

    db.users.deleteOne( { status: "D" } )

    db.collection.remove()

    Alternatively, the following example uses the db.collection.remove() with the <justOne> parameter set to 1 to delete the first document where status is "D":

    db.users.remove( { status: "D" }, 1)

    Additional Methods

    The following methods can also delete documents from a collection:

    Write Acknowledgement

    With write concerns, you can specify the level of acknowledgement requested from MongoDB for write operations. For details, see Write Concern.

  • 相关阅读:
    关于Windows窗口框架
    如何获取桌面截图
    浅析Windows安全相关的一些概念
    怎样才算会一门编程语言
    COM思想的背后
    XP之后Windows的一些变化
    智能指针与库
    SOUI开发应用展示2
    在SOUI中支持高分屏显示
    SOUI Editor使用教程
  • 原文地址:https://www.cnblogs.com/huey/p/6123618.html
Copyright © 2011-2022 走看看