MongoDB node.js find API调用如何知道是否将字段或选项作为参数传递?
MongoDB node.js同时允许MongoDB node.js find API调用如何知道是否将字段或选项作为参数传递?,node.js,mongodb,Node.js,Mongodb,MongoDB node.js同时允许选择器、字段、回调?和选择器、选项、回调?。字段和选项对象之间有什么区别?它们都可以是对象?您可以在中自己看到 该算法非常简单:迭代每个提供的值并检查它是否为已知选项。如果不是选项,则必须是字段 var testForFields = { limit: 1, sort: 1, fields:1, skip: 1, hint: 1, explain: 1, snapshot: 1, timeout: 1, tailable: 1, tailableRe
选择器、字段、回调?
和选择器、选项、回调?
。字段和选项对象之间有什么区别?它们都可以是对象?您可以在中自己看到
该算法非常简单:迭代每个提供的值并检查它是否为已知选项。如果不是选项,则必须是字段
var testForFields = {
limit: 1, sort: 1, fields:1, skip: 1, hint: 1, explain: 1, snapshot: 1, timeout: 1, tailable: 1, tailableRetryInterval: 1
, numberOfRetries: 1, awaitdata: 1, exhaust: 1, batchSize: 1, returnKey: 1, maxScan: 1, min: 1, max: 1, showDiskLoc: 1
, comment: 1, raw: 1, readPreference: 1, partial: 1, read: 1, dbName: 1, oplogReplay: 1, connection: 1
};
再往下,在find
方法中:
if(len === 2 && !Array.isArray(fields)) {
var fieldKeys = Object.getOwnPropertyNames(fields);
var is_option = false;
for(var i = 0; i < fieldKeys.length; i++) {
if(testForFields[fieldKeys[i]] != null) {
is_option = true;
break;
}
}
if(is_option) {
options = fields;
fields = undefined;
} else {
options = {};
}
}
if(len==2&&!Array.isArray(字段)){
var fieldKeys=Object.getOwnPropertyNames(字段);
var为_option=false;
对于(变量i=0;i
我不知怎么错过了testForFields
:-)谢谢嗯,如果我的字段与任何选项命名相同,它会将对象作为选项吗?这很易碎,不是吗?