$+标识符

    1. > db.foo.bar.insert( { "a": [ 1, 2, 3, 4, 5 ] } )
    2. > db.foo.bar.insert( { "a": [ 1, 4, 5 ] } )
    3. > db.foo.bar.insert( { "a": [ 4, 2, 1 ] } )
    • 查询出字段“a”的数组中存在元素5的记录:
    • 修改数组“a”中的元素,把值为4的元素改成100:
    1. > db.foo.bar.update( { "$set": { "a.$1": 100 } }, { "a.$1": 4 } )
    2. > db.foo.bar.find()
    3. {
    4. "_id": {
    5. "$oid": "582450162b4c38286d000014"
    6. },
    7. "a": [
    8. 1,
    9. 2,
    10. 3,
    11. 100,
    12. 5
    13. ]
    14. }
    15. {
    16. "_id": {
    17. "$oid": "5824501b2b4c38286d000015"
    18. },
    19. 1,
    20. 100,
    21. 5
    22. ]
    23. }
    24. {
    25. "_id": {
    26. "$oid": "582450202b4c38286d000016"
    27. },
    28. "a": [
    29. 100,
    30. 2,
    31. 1
    32. ]
    33. }
    34. Return 3 row(s).
    • 修改数组“a”中的元素,把值为100的元素改成2,且把1修改为200:
    • 现在要修改数组“a”中的元素,把值为2的元素改成2000:
    1. > db.foo.bar.update( { "$set" : { "a.$1" : 2000 } }, { "a.$1": 2 } )
    2. > db.foo.bar.find()
    3. {
    4. "_id": {
    5. "$oid": "582450162b4c38286d000014"
    6. },
    7. "a": [
    8. 200,
    9. 3,
    10. 2,
    11. 5
    12. ]
    13. }
    14. {
    15. "_id": {
    16. "$oid": "5824501b2b4c38286d000015"
    17. },
    18. "a": [
    19. 200,
    20. 2000,
    21. 5
    22. ]
    23. }
    24. {
    25. "_id": {
    26. "$oid": "582450202b4c38286d000016"
    27. },
    28. "a": [
    29. 2000,
    30. 2,
    31. 200
    32. ]
    33. }
    34. Return 3 row(s).