end
function DB:find(cname, q, ...)
- assert(getmetatable(q) == mtBObj, "Query object must be instance of 'luaejdb.B' class `q = luaejdb.B()`")
+ assert(getmetatable(q) == mtBObj, "Query object must be instance of 'luaejdb.Q' class `q = luaejdb.Q()`")
local sflags = ...
local orBsons = {}
local ors = q:getJoinedORs()
function DB:findOne(cname, q, ...)
-
+ assert(getmetatable(q) == mtBObj, "Query object must be instance of 'luaejdb.Q' class `q = luaejdb.Q()`")
+ q:Max(1);
+ local qres, count, log = self:find(cname, q, ...)
+ if qres ~= nil and #qres > 0 then
+ return qres:object(1), count, log
+ else
+ return nil, count, log
+ end
end
function DB:count(cname, q, sflags, ...)
end
+function DB:update(cname, q, ...)
+ return self:count(cname, q, ...)
+end
+
-- ------- EJDB Query -------------
function B:_init(fname, ...)
qres:close()
assert(#qres == 0)
-local r,err = pcall(qres.object, qres, 1);
+local r, err = pcall(qres.object, qres, 1);
assert(err == "Cursor closed")
assert(count == 2)
assert(log:find("COUNT ONLY: YES"))
+local vobj, count, log = db:findOne("mycoll", Q():Or(Q("foo", "bar"), Q("foo", "bar6")):OrderBy("foo desc"));
+assert(count == 1)
+assert(vobj["foo"] == "bar6")
+
+local vobj, count, log = db:findOne("mycoll", Q():Or(Q("foo", "bar"), Q("foo", "bar6")):OrderBy({ foo = 1 }));
+assert(count == 1)
+assert(vobj["foo"] == "bar")
+
db:close()