mongo初尝试 常用语句

it2025-01-09  7

mongo初尝试

· 注意函数的大小写,mongoDB是严格区分大小写的!!! 注意函数的大小写,mongoDB是严格区分大小写的!!! 注意函数的大小写,mongoDB是严格区分大小写的!!! · ref1: MongoDB与MySQL常用操作语句对照 ref2: MongoDB聚合查询详解 · 按工作中需求记录学习 ·

查看版本

# select version(); db.version(); print(db.version());

· 以表starProfile为例: ·

order

# select * from starProfile; db.starProfile.find(); # select id from starProfile order by id desc; db.starProfile.find({_id:ObjectId('...')}).sort({_id:1}); // 正序 asc db.starProfile.find({_id:ObjectId('...')}).sort({_id:-1}); // 倒序 desc

· ·

where

# select * from starProfile where spider_update like '%2020-10-10%' and userId=1110395428; db.starProfile.find({spider_update:/2020-10-10/, userId:1110395428});

· ·

delete

# delete from starProfile where spider_update is null; db.starProfile.remove({spider_update:null});

· ·

删除starId重复的记录,[仅保留spider_update最靠近当前的一条,这个待完成]

# delete from myTable where id not in (select newid from (select min(id) as newid from myTable group by pk)t); db.shiyi_starProfile.aggregate([ { $group:{ _id:{starId:'$starId'}, // 以starId为重复条件查询 count:{$sum:1}, // 计数 dups:{$addToSet:'$spider_update'} // 保存到桶中 }}, { $match:{ count:{$gt:1} // 查重复数 大于 1的记录 }} ], {allowDiskUse:true} // 数据量过大时使用 ).forEach(function(doc){ print(doc.dups.shift()) // 弹出第一条,避免把库内数据全部移除 // db.shiyi_starProfile.remove({_id:{$in:doc.dups}}); // 删除数据 }) ;
最新回复(0)