1、比较两个字段值是否一样
db.getCollection('actionData').find({
"$where": "this.TIME == this.SYSTEMTIME"
}).limit(10);
2、查询表中相同字段
db.actionData.aggregate([{'$match':{'TIME':{"$gte" : "2018-11-27 17:02:14" , "$lte" : "2018-11-29"}}},//筛选时间
{'$group':{
'_id':{'INDEX':'$INDEX','EVID':'$DEVID','TIME':'$TIME'},
'uniqueIds':{'$addToSet':'$_id'},
'count':{'$sum':1}
}},
{'$match':{'count':{'$gt':1} //筛选条数大于1的数据
}}],
{allowDiskUse:true}
);
3、查询所有存在该字段的数据
db.getCollection('processData').find({"TEMPER_FB_SP_1":{"$exists":true}})
4、手动分片
db.createCollection("plasticCycle")
db.getCollection('plasticCycle').ensureIndex({"_id":1})
sh.shardCollection( "collectData.plasticCycle", { "_id" : "hashed" } )
5、状态查询详解
db.serverStatus()
6、in查询
List<Map<String, Object>> boxConfigureInfo = boxConfigueTwo.selectMaps(wrapper);
List<String> idList = new ArrayList<String>();
for (Map<String, Object> map : boxConfigureInfo) {
idList.add(map.get("devID").toString());
}
querydoc.put("DEVID", new BasicDBObject("$in", idList));
7、模糊查询
doc.put("barcode", new BasicDBObject("$regex", barcode));//全模糊
BasicDBList barcodes = new BasicDBList();
DBObject barcodeDoc = new BasicDBObject();
barcodeDoc.put("barcode", new BasicDBObject("$regex", "^"+barcode));//右模糊
barcodes.add(barcodeDoc);
barcodeDoc = new BasicDBObject();
barcodeDoc.put("barcode", new BasicDBObject("$regex", barcode+"$"));//左模糊
8、更新单个字段
DBObject dd=new BasicDBObject();
dd.put("$set",new BasicDBObject("state",2));//更新一个字段