Added projection in query API
This commit is contained in:
1 parent
cc68d3b62e
commit
c3eb8c157d
2 files changed
+17
-1
No files matched your search
+13
-1
@@ -2,6 +2,7 @@ config = require './config'
|
|||||||
util = require 'util'
|
util = require 'util'
|
||||||
http = require 'http'
|
http = require 'http'
|
||||||
url = require 'url'
|
url = require 'url'
|
||||||
|
common = require './common'
|
||||||
db = require './db'
|
db = require './db'
|
||||||
mongodb = require 'mongodb'
|
mongodb = require 'mongodb'
|
||||||
querystring = require 'querystring'
|
querystring = require 'querystring'
|
||||||
@@ -292,7 +293,18 @@ else
|
|||||||
else
|
else
|
||||||
q = {}
|
q = {}
|
||||||
q = query.expand(q) if collectionName is 'devices'
|
q = query.expand(q) if collectionName is 'devices'
|
||||||
cur = collection.find(q, {}, {batchSize : 50})
|
|
||||||
|
if urlParts.query.projection?
|
||||||
|
projection = {}
|
||||||
|
for p in urlParts.query.projection.split(',')
|
||||||
|
p = p.trim()
|
||||||
|
projection[p] = 1
|
||||||
|
if collectionName is 'devices'
|
||||||
|
for k,v of config.ALIASES
|
||||||
|
if k == p or common.startsWith(k, "#{p}.")
|
||||||
|
projection[a] = 1 for a in v
|
||||||
|
|
||||||
|
cur = collection.find(q, projection, {batchSize : 50})
|
||||||
|
|
||||||
cur.skip(parseInt(urlParts.query.skip)) if urlParts.query.skip?
|
cur.skip(parseInt(urlParts.query.skip)) if urlParts.query.skip?
|
||||||
cur.limit(parseInt(urlParts.query.limit)) if urlParts.query.limit?
|
cur.limit(parseInt(urlParts.query.limit)) if urlParts.query.limit?
|
||||||
|
|||||||
@@ -15,6 +15,10 @@ exports.endsWith = (str, suffix) ->
|
|||||||
str.indexOf(suffix, str.length - suffix.length) isnt -1
|
str.indexOf(suffix, str.length - suffix.length) isnt -1
|
||||||
|
|
||||||
|
|
||||||
|
exports.startsWith = (str, prefix) ->
|
||||||
|
str.substring(0, prefix.length) == prefix
|
||||||
|
|
||||||
|
|
||||||
exports.arrayToHash = (arr) ->
|
exports.arrayToHash = (arr) ->
|
||||||
hash = {}
|
hash = {}
|
||||||
for i in arr
|
for i in arr
|
||||||
|
|||||||
Reference in new issue
Block a user