Как увидеть преобразованный запрос с помощью оболочки MongoDB - PullRequest
0 голосов
/ 06 октября 2011
> db.foo.remove()
> db.foo.insert( { foo : "bar" } )
> var cursor = db.foo.find( { foo : "bar" } ).sort({x : 1})
> cursor.hasNext()
true
> cursor.next()
{ "_id" : ObjectId("4e8ddace03998dbf81966015"), "foo" : "bar" }
> db.foo.find({ $query : {foo : "bar"}, $orderby : { x : 1}})
{ "_id" : ObjectId("4e8ddace03998dbf81966015"), "foo" : "bar" }
> 

Следующий запрос:

var cursor = db.foo.find ({foo: "bar"}) .sort ({x: 1})

был преобразован оболочкой в ​​следующий оператор:

db.foo.find ({$ query: {foo: "bar"}, $ orderby: {x: 1}})

Вопрос: Есть ли способ, которым я мог бы увидеть преобразованный запрос с помощью оболочки?Другими словами, учитывая запрос, могу ли я увидеть преобразованную форму запроса оболочкой?

1 Ответ

1 голос
/ 06 октября 2011

Вы не можете видеть точный запрос из оболочки, но вы можете точно видеть, что делают вспомогательные функции (sort, size и т. Д.). Если оставить без скобок, то будет получен запрос JS:

> db.foo.find
function (query, fields, limit, skip) {
    return new DBQuery(this._mongo, this._db, this, this._fullName, this._massageObject(query), fields, limit, skip);
}
> db.foo.find().sort
function (sortBy) {
    return this._addSpecial("orderby", sortBy);
}

Как видите, все, что делает sort, это добавляет оператор orderby.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...