{"_id":"relax-ql","_rev":"26-985c5eac7dde75d5761f35e325658089","name":"relax-ql","description":"A Query language for mongoosejs","dist-tags":{"latest":"1.3.5"},"versions":{"0.1.0":{"name":"relax-ql","version":"0.1.0","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"215807a8a72f54cdba15283ba4766832b084dfbb","_id":"relax-ql@0.1.0","_shasum":"e19fa17045858e49bef2d8e7ab1eb64fbce5f63e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"e19fa17045858e49bef2d8e7ab1eb64fbce5f63e","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-0.1.0.tgz","integrity":"sha512-OlQvBmjT+TvdbH7Sc9FVZGilfWAb1R02Q3ly9kzofRix8ZnG0qNFW0rPbw5XWgiOM3kt9+IK9sUnjFVgTIGcaw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAVUab2gi/vLik4UN5cgOI1lJH1LhFovCAIETSdiOAnPAiEA4+h4XmgR9of3NiUf2NfkcGwV9WWzFqsZexym5hBsjxg="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-0.1.0.tgz_1489028295737_0.5495588469784707"}},"1.0.0":{"name":"relax-ql","version":"1.0.0","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"1a7cafccb3d8b504e69f9753c5160a87495cc040","_id":"relax-ql@1.0.0","_shasum":"9c367b988f2e34cc2940e62790960907fc715cd5","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"9c367b988f2e34cc2940e62790960907fc715cd5","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.0.0.tgz","integrity":"sha512-pCu3uyCcUrwMEDVqveu1c+opGn9O6hRUBoGgOMBOlrVOG4q+e46UhpS2AVXkq+KTekebbxO7OFSGIbhQSjqe6g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCICA6JcuLPJURPsgghiOOzGSwo8mItipL8mzhbOiIqYoyAiEA24DrEaQpmGZBtONj+N/p3FK4yCOLzzNTnAZsaDLor9k="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/relax-ql-1.0.0.tgz_1489028448730_0.3583667133934796"}},"1.1.0":{"name":"relax-ql","version":"1.1.0","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"81a0238ec599d6ba75da4188e83a78b4b09fd95c","_id":"relax-ql@1.1.0","_shasum":"cfc2e2134aca685ce53792d5e8c17a2018f37d4a","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"cfc2e2134aca685ce53792d5e8c17a2018f37d4a","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.1.0.tgz","integrity":"sha512-pVfkE6ap1N4A6O9Xf5vLje+xYUNhHN0O7x6a6agbEhcthFb2aCTh35OYbSEMMC8QBGE9UYQuxaTf2kIp8GF3GA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIECOoydMeF4mb7hktdIl/s0Wiacxbg+qY2vx6GGpBc5nAiAGOuU60+gnMLgHQrQW9PcLuC/WTBTfhCDDZ8howoFHIA=="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/relax-ql-1.1.0.tgz_1489034081642_0.8975544995628297"}},"1.2.0":{"name":"relax-ql","version":"1.2.0","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"f341187259270e467c94f2096e9b96b6adad7f14","_id":"relax-ql@1.2.0","_shasum":"a93d1340dd92aeb28652fc25d015b78cb72175b1","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"a93d1340dd92aeb28652fc25d015b78cb72175b1","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.0.tgz","integrity":"sha512-qeqfMbQ8CsggXAZnwlWom3MNOPnQZ1brRiA7suhENO6yAMFRDOgmVVTGKiwGDotMmM2GTQHI1IEPFK/RAOMzpA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4KiDGJzu8pByZin/+jP6CmgjFzMVQFbQ5EO3kufG9eQIgNB9y5x4yZ0uk6MM5535I9L+8ST0UovLKes74y3D9okA="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.0.tgz_1489034936932_0.27283302624709904"}},"1.2.1":{"name":"relax-ql","version":"1.2.1","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"f341187259270e467c94f2096e9b96b6adad7f14","_id":"relax-ql@1.2.1","_shasum":"9d86e7804f24ca285023b28e80006f662331e1f1","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"9d86e7804f24ca285023b28e80006f662331e1f1","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.1.tgz","integrity":"sha512-FENkUYlSL/KKdPEzQZ74vIILzL+7DnW/HHYu969bO9OkZ0kq0LZDHN4i8xSy4Q2lPzIhA8JmWo3r5562w4CzBg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFaN/jWBC14JZxbVjAUg047/QYGZRCQGmaMACHFFMb50AiBMDgCI4xHXfFWiHcWbymWqCi1RSqSdBEWGTVRKrT5/3A=="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.1.tgz_1489035400014_0.7511338747572154"}},"1.2.2":{"name":"relax-ql","version":"1.2.2","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"f341187259270e467c94f2096e9b96b6adad7f14","_id":"relax-ql@1.2.2","_shasum":"ca05cc0c53c05db61ca1004621003b09c6545adc","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"ca05cc0c53c05db61ca1004621003b09c6545adc","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.2.tgz","integrity":"sha512-2I5ktmSY/uH9BLl5yp3lSYnKxVYQFS/frLqVwmt6pP3yck9VkDb0L+31xZJu6kJ0VRhjb/mwva4ECCulctBG3w==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQClt0XidPUySXLf/B08+YCATE6Eu+IxGZry41A1//iVtwIhAMoWiqaeVmTRk3U/kL5CD1d6gBWwgWNuaC2H0a29XP8x"}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.2.tgz_1489035812672_0.04628163133747876"}},"1.2.3":{"name":"relax-ql","version":"1.2.3","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"5619553f5814d12cdc880a1402fd5e4507a13a73","_id":"relax-ql@1.2.3","_shasum":"9a1d0c1703678b72241d79e57093f61b8d96e84e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"9a1d0c1703678b72241d79e57093f61b8d96e84e","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.3.tgz","integrity":"sha512-KQmm+Kd5VeVqaDX3ilxJha1hjDz5GM2pqSbK90vhs2rrPfy70ykbjvYQrPwhz8JjXn1m/AQthrH1UMZdMY2nPQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGUFkhRgAT0F2PYWUWGvpx+siQii0Iy6ixTA2wswxkvvAiEAgDuYJ5F27w7z1yJfZ+xAo4jGq9gFxxRGAnZ0qjSrmAY="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.3.tgz_1489046470642_0.6633946152869612"}},"1.2.4":{"name":"relax-ql","version":"1.2.4","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"5619553f5814d12cdc880a1402fd5e4507a13a73","_id":"relax-ql@1.2.4","_shasum":"65432484ccbf1188df0cdceefaea7876043b9b1c","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"65432484ccbf1188df0cdceefaea7876043b9b1c","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.4.tgz","integrity":"sha512-7svWGsrjYH9ExAL7KMzLxhM056Gr6SO8O3tmtPNm1ikBpKX3f/bKctRXTPPdeAVB9NpBXpbHjR1eMPpjMPh2Ug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBqnILkTOiaBYyMW1ZIsWRvkRnxyrcuzA/rYynZ354wtAiEA8GvxuXyV3psfCDPtCj4FgQSAAxGaOomRS+QCBFndAVM="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.4.tgz_1489046535460_0.7463309923186898"}},"1.2.5":{"name":"relax-ql","version":"1.2.5","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"5619553f5814d12cdc880a1402fd5e4507a13a73","_id":"relax-ql@1.2.5","_shasum":"2b80dec88db8193520d1dbbe830cb0b23b7b60bb","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"2b80dec88db8193520d1dbbe830cb0b23b7b60bb","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.5.tgz","integrity":"sha512-+ms2yZQ2CUUKMbPCAgDJs0Sjh0z6onqahdhzAYWEaN5kNcsNNkYlXxpuwTv+nfqH+Tpuqymmj013lPSLLfH75Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDe2e+Utz45cwVqi3C48EOAUiQYsemLdWwknOaZeoclnAiBAoWmupaX4JAPhGovD1xLb9ch5leLKE04cR1vr0ftCQA=="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.5.tgz_1489053328527_0.8677316985558718"}},"1.2.6":{"name":"relax-ql","version":"1.2.6","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"5619553f5814d12cdc880a1402fd5e4507a13a73","_id":"relax-ql@1.2.6","_shasum":"b86db20efffb25f074fc4a1f4f02d0033001970f","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"b86db20efffb25f074fc4a1f4f02d0033001970f","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.6.tgz","integrity":"sha512-nfuvwF4aObxou96j1YE1cOl2Go81ExzwM6q94dLWzGUyjt5hwGHScr+0XFY2+k+G0tl9gO5JSdbnkMGpmm4C3g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDb4JhXnMUJ8acR0oa4g2M+5BoTco/cdLdSl9ornTDqCQIgfMZeQbCSfdMw18XBnXIPnY35VrPyqkd1uSB8wx1jkxc="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.6.tgz_1489056566742_0.30376572581008077"}},"1.2.7":{"name":"relax-ql","version":"1.2.7","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"5619553f5814d12cdc880a1402fd5e4507a13a73","_id":"relax-ql@1.2.7","_shasum":"d140d725a782809815cc2816b773d63984581a2e","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"d140d725a782809815cc2816b773d63984581a2e","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.7.tgz","integrity":"sha512-fPMsTzc5/mRF95HH5MLfhgW6hud77YOhGhDNxckFsz55gQcicnK8cj+4qveaulgqJUqYfUdgyWPKDlzMrxK8JQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCzxtFJypARtlXqguZ3J+QRg7xGuciRJMd8S0Uodpr+GAIgEOCUfC20lEx/PM6yJwny8KaIVs2+soDwFOzgdDWO3ck="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.7.tgz_1489056673480_0.34757597860880196"}},"1.2.8":{"name":"relax-ql","version":"1.2.8","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"5619553f5814d12cdc880a1402fd5e4507a13a73","_id":"relax-ql@1.2.8","_shasum":"ef3a757cde35705b82b31d02f4eb6827a3ec170b","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"ef3a757cde35705b82b31d02f4eb6827a3ec170b","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.8.tgz","integrity":"sha512-s+gOeAfYb2Hue2pALv63ZEL0q/E5jOzCnPPynHI1m2ZfHykQFdHXAnmeMne1tfpUl5JrbOIxfceYOibAC81d4A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCICV0qJpE3i7SGyF5i4fdscmsIIjMuPZtd2QLjA6A+7AIgO6VnHxaO8KzEeXET8evyCI9+YqXxHQo39J9yhgNOffc="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.8.tgz_1489077870687_0.5420679699163884"}},"1.2.9":{"name":"relax-ql","version":"1.2.9","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"5619553f5814d12cdc880a1402fd5e4507a13a73","_id":"relax-ql@1.2.9","_shasum":"a07c7029f60332436e453d61f9699ab4ad8b66c4","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"a07c7029f60332436e453d61f9699ab4ad8b66c4","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.9.tgz","integrity":"sha512-IU/KgbBvd5VN9o1r5H/M2Z0nllaERbgXpFMna6ldVFDVepz/ZimoMThr+aBP1fCM+fIYoDvaSuLNh2IRkReYCA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDOCQJ+/ZFPfBrbMe2+HGsZQMz6Jdf8t19ZKQmlH6B3fwIhAIR1ZY9Vf+TUaUB/CgreAY1YByOAo6hZSthhOQ1EEfl9"}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.9.tgz_1489078083895_0.5927019694354385"}},"1.2.10":{"name":"relax-ql","version":"1.2.10","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"5619553f5814d12cdc880a1402fd5e4507a13a73","_id":"relax-ql@1.2.10","_shasum":"23ee10718f47738a1d5b3d9362168d4b92c46059","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"23ee10718f47738a1d5b3d9362168d4b92c46059","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.10.tgz","integrity":"sha512-pDs8vXREfXKhuSyDCL9Itw6ONyX15eD1H1w4XYyr8bkqdQOl9oEwqVWO22Z0Cmy005r82sSAjWfEclhzdpBA7A==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICaL1YwBmNZ4WD1fha3fp+U333CQElsLxstSCt7/BpalAiBawZRZLmbV/vMcc9x7x0VrIv/D8rIochYmJCeNVy1Jfg=="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.10.tgz_1489078594286_0.67035215604119"}},"1.2.11":{"name":"relax-ql","version":"1.2.11","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"5619553f5814d12cdc880a1402fd5e4507a13a73","_id":"relax-ql@1.2.11","_shasum":"b091b243b6eb29e61d2b4dd06060b5ad101f14e1","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"b091b243b6eb29e61d2b4dd06060b5ad101f14e1","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.11.tgz","integrity":"sha512-6IkH78ujEoR3lKHOwTq1vl4eXlw/HjbZcjk+ddyh0bKERjzYGFM4FgflSQfDcbb5N54dFWZnGMNRsd3MeSkoEQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQC2M6K87xtS6aVGMKYNfzeI0OT/M7SV/X3uyKqRcctm7QIgOA4wPE4QUiqqsjILAeDnFL8IyB4jX7XhW3VuceST17A="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.11.tgz_1489079050291_0.37246716883964837"}},"1.2.12":{"name":"relax-ql","version":"1.2.12","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"5619553f5814d12cdc880a1402fd5e4507a13a73","_id":"relax-ql@1.2.12","_shasum":"69e50ec7bb7f3ac36fb9b88b9e39c6486a9adddc","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"69e50ec7bb7f3ac36fb9b88b9e39c6486a9adddc","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.12.tgz","integrity":"sha512-PCTkh0MGiDPiQ7GbYijtgww/kSUZl1noVbciETkZDlLa/x7oaSyMxQy00teA7BYpqUSacV2EJHbUaRD7WWBBwA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDMIfkBBEqJ/WG5FERNnlFPNgWhPOaxYL6Kb/u3d+GhGQIgfnVh+9pArqILyhHN6PCrjShrRsuKYaQEDgUKZEAcbi8="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.12.tgz_1489122436510_0.9411945273168385"}},"1.2.13":{"name":"relax-ql","version":"1.2.13","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/mql/issues"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/mql#readme","gitHead":"5619553f5814d12cdc880a1402fd5e4507a13a73","_id":"relax-ql@1.2.13","_shasum":"140221f76256b6999df2dbe05a1a185b879bea7a","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"140221f76256b6999df2dbe05a1a185b879bea7a","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.13.tgz","integrity":"sha512-f8amEtgns2Pwa0shlU7W7g245tSqdzk6rd6vmplJs/CtArMrGzwXGkDgdfwz95k0rCrI64mcI8JryQlE0TYaUw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDKMRS4avzvKwEVdxcAzdHFGrQu6fBMJZO2yh3ZKeicjAiEAiFiwXZT08xUAayrFGEVdCXaIH5WOm1rXqaVoNDTKGTE="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.13.tgz_1489122790351_0.01384836039505899"}},"1.2.14":{"name":"relax-ql","version":"1.2.14","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/relax-ql/issues"},"repository":{"type":"git","url":"git+https://github.com/tunght91/relax-ql.git"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/relax-ql#readme","gitHead":"787f5d0abaaf22054d4256893403395c6c810eee","_id":"relax-ql@1.2.14","_shasum":"8cae48978cc5ff5c9436339981180013dc64a9eb","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"8cae48978cc5ff5c9436339981180013dc64a9eb","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.2.14.tgz","integrity":"sha512-ovJaqWl1tUYa7p6o06Yv8lyZzeYVepnZ8ZNp00Yj663xzPVFODgUqlmYSpr5JsouU44DXlacX13am2bj3nqiPg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCLy9JsZhBMuHwK1GvYcniOz5XssBQu6hhrMai143NYMwIhAK1C+OvDlR7oKI4keynFziRA93ohiJQQ/9L+8WEVGbe6"}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.2.14.tgz_1490063757784_0.024829179514199495"}},"1.3.0":{"name":"relax-ql","version":"1.3.0","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/relax-ql/issues"},"repository":{"type":"git","url":"git+https://github.com/tunght91/relax-ql.git"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/relax-ql#readme","gitHead":"bbbad253af4791885bfc8aa045fffc091ec4c125","_id":"relax-ql@1.3.0","_shasum":"e83c66e9bc7de68f39630d02fb92b399d60c997a","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"e83c66e9bc7de68f39630d02fb92b399d60c997a","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.3.0.tgz","integrity":"sha512-GvXCG23WlX3hYjXVkFiMY77tbJQIKYCuE1fNRPjarFF/TLIv6CxgANFDoLhHRe6jlTeUNzJIKDKi5cz6KUdzeg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGSHqaNQYq9sRpH1Q24+hkvBAM4jHfmWJ44QNrovKHa9AiAu50VDVqLJB3RytCf9V/9qg782cArdoMjU/Tu5OlB24g=="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/relax-ql-1.3.0.tgz_1490172466951_0.3929064958356321"}},"1.3.1":{"name":"relax-ql","version":"1.3.1","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/relax-ql/issues"},"repository":{"type":"git","url":"git+https://github.com/tunght91/relax-ql.git"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/relax-ql#readme","gitHead":"2d0f6422bfc8edcd2fddccf3af2ca7fd721ebd56","_id":"relax-ql@1.3.1","_shasum":"0380597fcc0f2aeec8862dcb14fe88b481a23dbc","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"0380597fcc0f2aeec8862dcb14fe88b481a23dbc","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.3.1.tgz","integrity":"sha512-AW1lRWMb3yYkr/yT9xn2Wo4Lj2LVpDUO3f7fDE6aAYxVteXsVe0I2q4ODMaOnrwbMkZEbWifwvGMDkLnCI56sw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIrCZ7GL81oNyH0ONIcbnEimxJ2fV6ZR7iRoYSb289RgIhAJn4Yrlcb+23gnLeMz0WHeGKWZ8+dH6uCgFsdiBgiFFP"}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-18-east.internal.npmjs.com","tmp":"tmp/relax-ql-1.3.1.tgz_1490172766901_0.5796191482804716"}},"1.3.2":{"name":"relax-ql","version":"1.3.2","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/relax-ql/issues"},"repository":{"type":"git","url":"git+https://github.com/tunght91/relax-ql.git"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/relax-ql#readme","gitHead":"b8d85e053587aae77f301bf8d3ac8d55cdc0bba9","_id":"relax-ql@1.3.2","_shasum":"0dafcefe7b000cd8af7f522e9ccccc30663bc7b6","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"0dafcefe7b000cd8af7f522e9ccccc30663bc7b6","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.3.2.tgz","integrity":"sha512-drxOYdouOXIewkpdJh2Uri67hzN8peDIGKo+090wwQQqPCvXtDPvhanJ5ZczfYnlm1JfBGZA1o9fouBoKC3FVQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtwV5yWntFQPqVdhO/OSg6B7KskmTolEA1SK9t5HHBWwIhAL0uP4k8I+CrQN9WwDwF32ljJt26ORbnxnIPRjXitrvY"}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.3.2.tgz_1490178832953_0.40119702252559364"}},"1.3.3":{"name":"relax-ql","version":"1.3.3","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/relax-ql/issues"},"repository":{"type":"git","url":"git+https://github.com/tunght91/relax-ql.git"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/relax-ql#readme","gitHead":"b8d85e053587aae77f301bf8d3ac8d55cdc0bba9","_id":"relax-ql@1.3.3","_shasum":"8181137603450e9feb9b0bd12bef7d0bb5e5b843","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"8181137603450e9feb9b0bd12bef7d0bb5e5b843","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.3.3.tgz","integrity":"sha512-q7aoNREQSXV6gDWOPgeXJbSv/C/2fPyTZ8jIRDX9Kp4CknHcUDyp4Ax/koDpOf/hiWH8THVw4tQ3v3YvhWFO8g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCbjcO1fAS/kC/8W8dCk5fPjxBcibSNxPnENtH+sWDs9QIgYtOKWPaWLRlssWoY1VJgfn6++r1/suN0D8MzlQwuqwQ="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.3.3.tgz_1493020998385_0.6420031012967229"}},"1.3.4":{"name":"relax-ql","version":"1.3.4","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/relax-ql/issues"},"repository":{"type":"git","url":"git+https://github.com/tunght91/relax-ql.git"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/relax-ql#readme","gitHead":"b8d85e053587aae77f301bf8d3ac8d55cdc0bba9","_id":"relax-ql@1.3.4","_shasum":"a8e422528635c7b5ae62d2371322e012d2adc094","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"a8e422528635c7b5ae62d2371322e012d2adc094","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.3.4.tgz","integrity":"sha512-DqfLdBjcQKab7yUW8uOo8njyLmKRuaRmWrmeoFArwklbDJDm7oX/ViP9VxbcjNN7n1267JAFS7n/aSzav14IcQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDBckve/46BPhUZgoSylCuY9KG9J9lw21jNmWPP4j58xgIgcTHSUdvKD1ANCk3yU6uoHJXVpHKMo9vsrjrokAoKUcU="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"packages-12-west.internal.npmjs.com","tmp":"tmp/relax-ql-1.3.4.tgz_1493352400355_0.9279069367330521"}},"1.3.5":{"name":"relax-ql","version":"1.3.5","description":"A Query language for mongoosejs","main":"index.js","scripts":{"test":"node ./test.js"},"author":{"name":"tunght91"},"license":"ISC","dependencies":{"deep-obj":"^1.2.3","es6-promise":"^4.0.5","lodash":"^4.17.4","mongoose":"^4.8.5"},"bugs":{"url":"https://github.com/tunght91/relax-ql/issues"},"repository":{"type":"git","url":"git+https://github.com/tunght91/relax-ql.git"},"keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"homepage":"https://github.com/tunght91/relax-ql#readme","gitHead":"b8d85e053587aae77f301bf8d3ac8d55cdc0bba9","_id":"relax-ql@1.3.5","_shasum":"8d43178ae773bf49b47f4704d6f6811c5fbbe3f7","_from":".","_npmVersion":"3.10.10","_nodeVersion":"6.9.5","_npmUser":{"name":"tunght91","email":"hoangtung.utc@gmail.com"},"dist":{"shasum":"8d43178ae773bf49b47f4704d6f6811c5fbbe3f7","tarball":"https://registry.npmjs.org/relax-ql/-/relax-ql-1.3.5.tgz","integrity":"sha512-/bYLLdoIzr4LtSUY1NFcnuKD4A4rMln1J7i4LuSy95/Z7tOgJ/mKT3XuTqZEUZ+iKZDCwGLAWzPbhPYBMAN/MQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDmn+4qu1CHteouAMRr5kDrlRGUB1Scxa8O/4P2c95iYwIgfcWBxCBSjXSPc8lqazzAtqO1pFSQmeggZxTi2xOeJTM="}]},"maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/relax-ql-1.3.5.tgz_1496724725147_0.9288901372347027"}}},"readme":"# What is relax-ql?\nA simple query language for mongoodb. It base on mongoosejs. Everything is too easy to getting done your job.\nWrite LESS, do MORE and Let's RELAX (after done :v)\n\n# Models\n```javascript\nvar ReviewSchema = Schema({\n  author: ObjectId,\n\tlocalBiz: ObjectId,\n\tpostedTime: Date,\n\tcontent: String,\n\trating: Number,\n\tlikes: [ObjectId]   //Array of users id liked this review\n});\nconst LocalBizSchema = new Schema({\n\tname: String,\n\tcategories: [String],\n\taddress: String,\n\trating: Number\n});\n\nconst UserSchema = new Schema({\n\temail: String,\n\tdisplayName: String\n});\n\nconst BrandSchema = new Schema({\n\tname: String,\n\tlocalBizs: [ObjectId] //Array of localbizs id of this brand\n});\n\nvar Review = mongoose.model('Review', ReviewSchema);\nvar LocalBiz = mongoose.model('LocalBiz', LocalBizSchema);\nvar User = mongoose.model('User', UserSchema);\nvar Brand = mongoose.model('Brand', BrandSchema);\n\nmodule.exports = {\n  Review,\n  LocalBiz,\n  User,\n  Brand\n}\n```\n\n# Setup relax-ql\n```javascript\nvar ql = require('relax-ql');\nql.add({\n  models: require('./db')\n});\n```\n\n# Example 1\nYou want get 10 reviews from database.\n\nWith mongoosejs:\n```javascript\nReview\n  .find()\n  .limit(10)\n  .lean()\n  .exec()\n  .then(reviews => console.log(reviews));\n```\n\nWith relax-ql:\n```javascript\nql`*: Review().limit(10)`\n  .exec()\n  .then(result => console.log(result));\n```\n\n# Example 2\nThe code above is a simple query. And now, we will do with a more complex query. We will get 10 reviews from database and each review contain information of reviewer.\n\nWith mongoosejs:\n```javascript\nReview\n  .find()\n  .limit(10)\n  .lean()\n  .exec()\n  .then(reviews => {\n    return Promise.all(\n      reviews.map(review => new Promise((resolve, reject) => {\n        User.findOne({\n          _id: review.author\n        })\n        .lean()\n        .exec()\n        .then(user => {\n          review.authorDetail = user;\n          resolve(review);\n        })\n        .catch(err => eject(err))\n      }))\n    )\n  })\n  .then(reviews => console.log(reviews));\n```\n\nWith relax-ql:\n```javascript\nql`\n  *: Review().limit(10)\n    authorDetail: User[this.author]`\n.exec()\n.then(reviews => console.log(reviews));\n```\n\n# Example 3\nSelect and projection data\n\nWith mongoosejs:\n```javascript\nReview\n  .find()\n  .limit(10)\n  .lean()\n  .exec()\n  .select({\n    content: true,\n    rating: true,\n    author: true,\n    likes: {\n      $slice: 3\n    }\n  })\n  .then(reviews => {\n    return Promise.all(\n      reviews.map(review => new Promise((resolve, reject) => {\n        User.findOne({\n          _id: review.author\n        })\n        .lean()\n        .exec()\n        .select({\n          displayName: true,\n          email: true\n        })\n        .then(user => {\n          review.author = user;\n          resolve(review);\n        })\n        .catch(err => eject(err))\n      }))\n    )\n  })\n  .then(reviews => console.log(reviews));\n```\n\nWith relax-ql:\n```javascript\nql`\n  *: Review().limit(10)\n    content\n    rating\n    likes(slice: 3)\n    author:= User[this.author]\n      displayName\n      email`\n.exec()\n.then(reviews => console.log(reviews));\n```\n\n# So, what is relax-ql can do?\n## Begin with Find or FindOne\n\nFind 10 reviews with rating = 5\n```javascript\nql`*: Review(rating == 5).limit(10)`\n.exec()\n.then(reviews => console.log(reviews));\n```\nor\n```javascript\nql`*: Review.find(rating == 5).limit(10)`\n```\n\nFindOne review with rating >= 3\n```javascript\nql`*: Review[rating == 5]`\n```\nor\n```javascript\nql`*: Review.findOne(rating == 5)`\n```\n\n## Support query selectors\n### Comparison\n```\n== : $eq\n!= : $ne\n< : $lt\n> : $gt\n<= : $lte\n>= : $gte\nIN : $in\nNIN : $nin\nin : $in\nnin : $nin\n```\n\n### Logical\n```\n&& : $and\n```\n\n### Element\n```\nEXISTS : $exists\nTYPE : $type\nexists : $exists\ntype : $type\n```\n\n### Evaluation\n```\nMOD : $mod\nREGEX : $regex\nTEXT : $text\nWHERE : $where\nmod : $mod\nregex : $regex\ntext : $text\nwhere : $where\n```\n### Array\n```\nALL : $all\nMATCH : $elemMatch\nSIZE: $size\nall : $all\nmatch : $elemMatch\nsize: $size\n```\n\n## Example query selectors\n\n### Example 1\n```\nlikeNumber >= 5 && likeNumber < 100 && rating IN [2, 3] && comments EXISTS true\n```\n\nparse to\n\n```javascript\n{\n  likeNumber: {\n    $gte: 5,\n    $lt: 100\n  },\n  rating: {\n    $in: [2, 3]\n  },\n  comments: {\n    $exists: true\n  }\n}\n```\n\n## How to write a query selector\n\nThe bellow is rules for write query selector.\n\n1. Attribute always is left side of operator and value to compare must be right side of operator\n2. Currently, relax-ql not support OR logical operation. Only use and. But we absolutely write a complex query selector. I will show to you in next session.\n3. relax-ql support some type like: String, Number, Boolean, Array, Object, Regex. Example: \"abc\" or 'abc' is string, [1, 2, 3] is array of number, {a : 1} is an object, true or TRUE or False is booleam type and /abcd/ig is regex type.\n4. Can pass value by params, also pass a query selector by params. I'll show to you in next session.\n\n## Advance Find and FindOne\n### Find with complex query selector\n1.\n```javascript\nql`reviews: Review(likeNumber >= 5 && likeNumber < 100 && rating IN [2, 3] && comments EXISTS true)`\n```\n2.\n```javascript\nql`reviews: Review(${{\n    $or: [{\n      likeNumber: 5\n    }, {\n      likeNumber: 4\n    }]\n  }})`\n```\nor use param\n```javascript\nvar reviewQuery = {\n  $or: [{\n    likeNumber: 5\n  }, {\n    likeNumber: 4\n  }],\n  rating: {\n    $in: [1, 2]\n  },\n  comments: {\n    $all: [\n      { \"$elemMatch\" : { likeNumber: { $gt: 50, $lt: 100} } },\n      { \"$elemMatch\" : { content : { $regex: /abcd/i } } }\n    ]\n  }\n}\nql`reviews: Review(${reviewQuery})`\n```\n\n### Find with options\nrelax-ql support limit, skip, sort (ASC, DESC)\n```javascript\nql`reviews: Review(likeNumber >= 5).limit(10).skip(10).DESC('rating').ASC('createdAt')`\n```\n\nNote: Sepecial support *unlean* optional. Because the query default call .lean() function. When we use unlean option, the query will not call .lean(). It very usefull when you defined some virtual atributes. Example:\n\nModel:\n```javascript\nvar PersonSchema = new Schema({\n  name: {\n    first: String,\n    last: String\n  }\n}, {\n  toObject: { virtuals: true },\n  toJSON: { virtuals: true }\n});\nPersonSchema\n  .virtual('displayName')\n  .get(function () {\n    return this.name.first + ' ' + this.name.last;\n  });\n\nvar Person = mongoose.model('Person', PersonSchema);\n```\nDon't use unlean()\n```javascript\nql`*: Person[]`\n.exec()\n.then(p => console.log(p));\n// display on screen\n/*\n{\n  name: {\n    first: 'abc',\n    last: 'def'\n  }\n}\n*/\n```\n\nUse unlean() optional\n```javascript\nql`*: Person[].unlean()`\n.exec()\n.then(p => console.log(p));\n// display on screen\n/*\n{\n  name: {\n    first: 'abc',\n    last: 'def'\n  },\n  displayName: 'abc def'\n}\n*/\n```\n\n## Selection and projection\n\n### Selection\n```javascript\nql`\n  reviews: Review(likeNumber >= 5)\n    comments\n    content\n    rating\n`\n```\nor\n```javascript\nql`\n  status: Status[]\n    content\n    user\n      name\n      gender\n\n`\n```\nIt'll be\n```javascript\nStatus.findOne()\n  .select({\n    content: true,\n    user: true,\n    'user.name': true,\n    'user.gender': true\n  })\n```\n\n### Projection\nSupport\n```\nslice : $slice\nSLICE : $slice\nmatch : $elemMatch\nMATCH : $elemMatch\nmeta : $meta\nMETA : $meta\n```\nExample:\n```javascript\nql`\n  status: Status[]\n    content\n    likes(3)\n    comments(slice: 3)\n`\n```\n=>\n```javascript\nStatus.findOne()\n  .select({\n    content: true,\n    'likes.$': 3,\n    comments: {\n      $slice: 3\n    }\n  })\n```\n\n## Nested query\n\nExample:\n```javascript\nql`\n  reviews: Review(rating >= 3).limit(5)\n    author\n    authorDetail: User[this.author]\n      displayName\n    localBiz:= LocalBiz[this.localBiz]\n      name\n      address\n    likes\n      *: User[this.$value]\n        displayName\n    relatedReviews: Review(localBiz == this.localBiz).limit(3)\n      content\n      author:= User[this.author]\n        displayName\n`\n```\n\n### Keyword:\n- *this*: The pointer to parent\n- *this.$value*: The value of parent\n- := is select this attribute and result of query will overide to old value.\n- '*' is result of child query will overide to parent value\n\n### How to access data of parent\nCan you see the format of relax-ql like this:\n```javascript\nql`\n  key_name: Model.function(query_selector).optional().optional()\n    attr_selected\n    attr_selected\n    key_name: Model.function(query_selector).optional().optional()\n      attr_selected\n      attr_selected\n\n    attr_selected:= Model.function(query_selector).optional().optional()\n      attr_selected\n        key_name: Model.function(query_selector).optional().optional()\n          attr_selected\n          attr_selected\n    attr_selected\n      *: Model.function(query_selector).optional().optional()\n        attr_selected\n        attr_selected\n\n`\n```\nWe have two way to access to parent data.\n1. Use *this*\n- It will access to nearest parent data\n2. Use key_name\n- It will access to first parent match with key_name\n\n## Roadmap\n\n- Support all logical: AND, OR, NOT\n- Optimize query findOne\n- Fix projection: likes({$slice: 3})","maintainers":[{"name":"tunght91","email":"hoangtung.utc@gmail.com"}],"time":{"modified":"2022-06-26T10:54:34.899Z","created":"2017-03-09T02:58:15.967Z","0.1.0":"2017-03-09T02:58:15.967Z","1.0.0":"2017-03-09T03:00:50.651Z","1.1.0":"2017-03-09T04:34:43.295Z","1.2.0":"2017-03-09T04:48:57.162Z","1.2.1":"2017-03-09T04:56:41.712Z","1.2.2":"2017-03-09T05:03:34.436Z","1.2.3":"2017-03-09T08:01:12.546Z","1.2.4":"2017-03-09T08:02:15.680Z","1.2.5":"2017-03-09T09:55:28.786Z","1.2.6":"2017-03-09T10:49:27.015Z","1.2.7":"2017-03-09T10:51:13.714Z","1.2.8":"2017-03-09T16:44:30.968Z","1.2.9":"2017-03-09T16:48:05.744Z","1.2.10":"2017-03-09T16:56:36.300Z","1.2.11":"2017-03-09T17:04:10.579Z","1.2.12":"2017-03-10T05:07:18.355Z","1.2.13":"2017-03-10T05:13:10.569Z","1.2.14":"2017-03-21T02:35:58.015Z","1.3.0":"2017-03-22T08:47:48.928Z","1.3.1":"2017-03-22T08:52:48.988Z","1.3.2":"2017-03-22T10:33:53.205Z","1.3.3":"2017-04-24T08:03:18.665Z","1.3.4":"2017-04-28T04:06:40.605Z","1.3.5":"2017-06-06T04:52:05.252Z"},"homepage":"https://github.com/tunght91/relax-ql#readme","keywords":["deep","object","get","set","mongo","mongodb","mongoose","query","sql","populate"],"author":{"name":"tunght91"},"bugs":{"url":"https://github.com/tunght91/relax-ql/issues"},"license":"ISC","readmeFilename":"README.md","repository":{"type":"git","url":"git+https://github.com/tunght91/relax-ql.git"},"users":{"tunght91":true}}