Skip to content

Instantly share code, notes, and snippets.

@asya999
asya999 / explain1.js
Last active June 10, 2020 19:39
Explain aggregation 4 stages with group and slice
{
"stages" : [
{
"$cursor" : {
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "agg.scores",
"indexFilterSet" : false,
"parsedQuery" : {
"game" : {

Keybase proof

I hereby claim:

  • I am asya999 on github.
  • I am asya (https://keybase.io/asya) on keybase.
  • I have a public key ASCgrKHpwCuZFF_S0R44YJs3bhk_kvgi_MhNZQWpe_O0two

To claim this, I am signing this object:

getTypes = function (field) {
var alltypes=[
{ t: "Regex", minv: Timestamp(2147483647,9999) },
{ t: "Timestamp", minv: Timestamp(0,0) },
{ t: "ISODate", minv: new Date(0,0,0) },
{ t: "True", minv: true },
{ t: "False", minv: false },
{ t: "ObjectId", minv: ObjectId("000000000000000000000000") },
{ t: "BinData", minv: BinData(0,"") },
{ t: "Array", minv: [] },
@asya999
asya999 / rankArrayExample.js
Created July 19, 2017 19:43
Example using rankArray
> db.ranks.find()
{ "_id" : ObjectId("596f6e95b6a1aa8d363befeb"), "emp" : "xxx", "deptno" : 10 }
{ "_id" : ObjectId("596f6ea5b6a1aa8d363befec"), "emp" : "rrr", "deptno" : 10, "salary" : 10000 }
{ "_id" : ObjectId("596f6eacb6a1aa8d363befed"), "emp" : "fff", "deptno" : 10, "salary" : 40000 }
{ "_id" : ObjectId("596f6eb4b6a1aa8d363befee"), "emp" : "ddd", "deptno" : 10, "salary" : 40000 }
{ "_id" : ObjectId("596f6ebcb6a1aa8d363befef"), "emp" : "ccc", "deptno" : 10, "salary" : 50000 }
{ "_id" : ObjectId("596f6ec9b6a1aa8d363beff0"), "emp" : "bbb", "deptno" : 10, "salary" : 50000 }
{ "_id" : ObjectId("596f6ed7b6a1aa8d363beff1"), "emp" : "mmm", "deptno" : 11, "salary" : 5000 }
{ "_id" : ObjectId("596f6ee1b6a1aa8d363beff2"), "emp" : "nnn", "deptno" : 11, "salary" : 20000 }
{ "_id" : ObjectId("596f6eebb6a1aa8d363beff3"), "emp" : "kkk", "deptno" : 12, "salary" : 30000 }
@asya999
asya999 / rankArray.js
Created July 19, 2017 19:36
aggregation helper function
rankArray=function(inputArray, sortField="", dense=false) {
let suffix = "";
if (sortField!="") {
suffix = "."+sortField;
};
let orderVar = {};
if (dense) {
orderVar = {$cond:[
{$ne:["$$this"+suffix, "$$value.prevVal"]},
{$add:["$$value.order", 1]},
@asya999
asya999 / aggForFolderQuery.js
Created June 1, 2017 16:00
Aggregate for file collection
// variables used in query
_path="/path/to/my/folder";
basepath="folder";
collname="files";
// my example collection contents
db.getCollection(collname).find()
{ "_id" : 1, "name" : "", "type" : "folder", "createdAt" : ISODate("2017-05-02T04:00:00Z"), "updatedAt" : ISODate("2017-05-25T19:07:19.240Z") }
{ "_id" : 2, "name" : "path", "type" : "folder", "createdAt" : ISODate("2017-02-05T05:00:00Z"), "updatedAt" : ISODate("2017-05-25T19:07:19.240Z"), "parentId" : 1 }
{ "_id" : 3, "name" : "to", "type" : "folder", "createdAt" : ISODate("2017-03-01T05:00:00Z"), "updatedAt" : ISODate("2017-05-25T19:07:19.240Z"), "parentId" : 2 }
{ "_id" : 4, "name" : "my", "type" : "folder", "createdAt" : ISODate("2017-01-21T05:00:00Z"), "updatedAt" : ISODate("2017-05-25T19:07:19.240Z"), "parentId" : 3 }
@asya999
asya999 / noHAconf
Created January 16, 2014 00:38
ReplicaSet
test@test:PRIMARY(2.4.8) > rs.conf()
{
"_id" : "test",
"version" : 5,
"members" : [
{
"_id" : 0,
"host" : "asyasmacbook.local:40001"
},
{
@asya999
asya999 / dbrepair
Created January 14, 2014 05:02
repair time
mydb@PRIMARY(2.5.5-pre-) > db.repairDatabase()
{ "ok" : 1 }
mydb@PRIMARY(2.5.5-pre-) > db.stats(1024*1024)
{
"db" : "mydb",
"collections" : 6,
"objects" : 1015,
"avgObjSize" : 24.33103448275862,
"dataSize" : 0,
"storageSize" : 1024,
@asya999
asya999 / delete_files
Last active January 3, 2016 04:59
Delete data files
asyasmacbook:tests asya13$ rm /data/db/mydb.[12]
asyasmacbook:tests asya13$ ls -1shtr /data/db/mydb.*
16M Jan 13 20:37 /data/db/mydb.ns
64M Jan 13 20:37 /data/db/mydb.0
asyasmacbook:tests asya13$ ps ax | grep mongod | grep -v grep | awk '{print $1}'
65176
asyasmacbook:tests asya13$ lsof -p 65176
mongod 65176 asya13 txt REG 1,2 16777216 3984323 /data/db/mydb.ns
mongod 65176 asya13 txt REG 1,2 67108864 3984324 /data/db/mydb.0
mongod 65176 asya13 txt REG 1,2 134217728 3984325 /data/db/mydb.1
@asya999
asya999 / put_in_data
Created January 14, 2014 04:42
Messing with DB
mydb@PRIMARY(2.5.5-pre-) > for (i=0;i<1000;i++) db.bar.insert({})
Insert WriteResult({ "ok" : 1, "n" : 1, "lastOp" : Timestamp(1389674231, 506) })
mydb@PRIMARY(2.5.5-pre-) > db.createCollection("cap",{capped:true,size:1024*1024*1024})
{ "ok" : 1 }
mydb@PRIMARY(2.5.5-pre-) > db.stats(1024*1024)
{
"db" : "mydb",
"collections" : 6,
"objects" : 1015,
"avgObjSize" : 24.28768472906404,