mongo操作命令.txt 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. db.user.find(
  2. { _id: 10004680 }
  3. )
  4. db.user.updateOne(
  5. { _id: 10000394 },
  6. {
  7. $set: {
  8. "medalManager.medalMap": {},
  9. "combatPlanManager.combatPlanMap": {},
  10. }
  11. }
  12. );
  13. db.user.find(
  14. { _id: 10000245 },
  15. { _id: 1, "medalManager.medalMap": 1}
  16. )
  17. db.user.find(
  18. { _id: 10000245 },
  19. { _id: 1, "combatPlanManager.combatPlanMap": 1}
  20. )
  21. //删除指定字段为0的子文档
  22. db.user.updateMany(
  23. { _id: 10000245 },
  24. [
  25. {
  26. $set: {
  27. "medalManager.medalMap": {
  28. $arrayToObject: {
  29. $filter: {
  30. input: { $objectToArray: "$medalManager.medalMap" },
  31. as: "item",
  32. cond: { $ne: ["$$item.v.isLocked", 0] }
  33. }
  34. }
  35. }
  36. }
  37. }
  38. ]
  39. )
  40. db.user.updateMany(
  41. { _id: 10000245 },
  42. [
  43. {
  44. $set: {
  45. "combatPlanManager.combatPlanMap": {
  46. $arrayToObject: {
  47. $filter: {
  48. input: { $objectToArray: "$combatPlanManager.combatPlanMap" },
  49. as: "item",
  50. cond: { $ne: ["$$item.v.position", 0] }
  51. }
  52. }
  53. }
  54. }
  55. }
  56. ]
  57. )
  58. //查询充值总和
  59. db.pay.aggregate([
  60. {
  61. $match: {
  62. callbaktime: { $exists: true, $ne: null } // 筛选callbacktime存在且不为null的文档
  63. }
  64. },
  65. {
  66. $group: {
  67. _id: null,
  68. totalMoney: { $sum: "$money" }
  69. }
  70. }
  71. ])
  72. 备份玩家数据
  73. mongoexport -h localhost -p 27017 -u admin -p 123456 --authenticationDatabase admin -d m5_x1_game_10001 -c user -q '{ "_id": { "$numberLong": "10002017" } }' -o user_10002017.json
  74. 删除玩家指定邮件
  75. db.user.update(
  76. { _id: 10002017 },
  77. { $unset: { "mailManager.mailMap.10002017010217683145650000": 1 } }
  78. )
  79. db.user.findOne(
  80. { _id: 10002017 },
  81. { "mailManager.mailMap": 1 }
  82. )
  83. mongo4.2以下清楚芯片数据:
  84. db.user.find({ _id: 10001747 }).forEach(function(doc) {
  85. if (doc.medalManager && doc.medalManager.medalMap) {
  86. var newMedalMap = {};
  87. // 遍历 medalMap,只保留 isLocked !== 0 的项
  88. for (var key in doc.medalManager.medalMap) {
  89. var item = doc.medalManager.medalMap[key];
  90. if (item.isLocked !== 0) {
  91. newMedalMap[key] = item;
  92. }
  93. }
  94. // 更新文档
  95. db.user.updateOne(
  96. { _id: doc._id },
  97. { $set: { "medalManager.medalMap": newMedalMap } }
  98. );
  99. print("已处理文档: " + doc._id);
  100. print("过滤前数量: " + Object.keys(doc.medalManager.medalMap).length);
  101. print("过滤后数量: " + Object.keys(newMedalMap).length);
  102. }
  103. });