Giới hạn mongodb

Constructor cho một đối tượng con trỏ xử lý tất cả các thao tác trên kết quả truy vấn bằng cách sử dụng find. Đối tượng con trỏ này là một chiều và không thể đi ngược lại. Khách hàng không nên trực tiếp tạo con trỏ mà sử dụng find để lấy con trỏ. (LOẠI NỘI BỘ)

con trỏ lớp()¶Đối số

  • db (db) – đối tượng cơ sở dữ liệu để làm việc với
  • bộ sưu tập (bộ sưu tập) – bộ sưu tập để truy vấn
  • bộ chọn (đối tượng) – bộ chọn truy vấn
  • trường (đối tượng) – một đối tượng chứa các trường cần bao gồm hoặc loại trừ khỏi các đối tượng được trả về
  • [tùy chọn] (đối tượng) – tùy chọn bổ sung cho bộ sưu tập

Tùy chọn
  • bỏ qua {Number} bỏ qua số lượng tài liệu để bỏ qua
  • giới hạn {Number}, giới hạn số lượng kết quả trả về. -1 có ý nghĩa đặc biệt và được sử dụng bởi Db. đánh giá. Giá trị 1 cũng sẽ được xử lý như thể nó là -1
  • sắp xếp {Mảng. Object}, được đặt để sắp xếp các tài liệu quay lại từ truy vấn. Mảng chỉ mục, [[‘a’, 1]], v.v.
  • gợi ý {Object}, gợi ý buộc truy vấn sử dụng một chỉ mục cụ thể
  • giải thích {Boolean}, giải thích trả về lời giải thích của truy vấn
  • ảnh chụp nhanh {Boolean}, ảnh chụp nhanh Chế độ chụp nhanh đảm bảo không có bản sao nào được trả về
  • thời gian chờ {Boolean}, thời gian chờ cho phép truy vấn hết thời gian chờ
  • tailable {Boolean}, tailable cho phép con trỏ có thể điều chỉnh
  • awaitdata {Boolean}, awaitdata cho phép con trỏ chờ dữ liệu, chỉ áp dụng cho con trỏ có thể điều chỉnh
  • oplogReplay {Boolean}, đặt cờ nội bộ, chỉ áp dụng cho con trỏ có thể theo đuôi
  • batchSize {Number}, batchSize số lượng tập hợp con kết quả để yêu cầu cơ sở dữ liệu trả về cho mọi yêu cầu. Điều này ban đầu phải lớn hơn 1 nếu không cơ sở dữ liệu sẽ tự động đóng con trỏ. Kích thước lô có thể được đặt thành 1 với cursorInstance. batchSize sau khi thực hiện truy vấn ban đầu tới cơ sở dữ liệu
  • raw {Boolean}, raw trả về tất cả các tài liệu truy vấn dưới dạng bộ đệm thô (mặc định là false)
  • đọc {Boolean}, đọc chỉ định ghi đè đọc từ nguồn (chính/phụ)
  • returnKey {Boolean}, returnKey chỉ trả lại khóa chỉ mục
  • maxScan {Number}, maxScan giới hạn số mục cần quét
  • tối thiểu {Number}, giới hạn chỉ mục được đặt tối thiểu
  • tối đa {Number}, giới hạn chỉ mục được đặt tối đa
  • maxTimeMS {Number}, số mili giây phải đợi trước khi hủy bỏ truy vấn
  • showDiskLoc {Boolean}, showDiskLoc hiển thị vị trí đĩa của kết quả
  • nhận xét {Chuỗi}, nhận xét bạn có thể đặt trường nhận xét $ vào truy vấn để giúp việc tìm kiếm trong nhật ký hồ sơ đơn giản hơn
  • numberOfRetries {Number}, numberOfRetries nếu sử dụng awaidata chỉ định số lần thử lại khi hết thời gian chờ
  • dbName {String}, dbName ghi đè dbName mặc định
  • tailableRetryInterval {Number}, tailable Retry Interval chỉ định mili giây giữa getMores trên con trỏ có thể điều chỉnh
  • xả {Boolean}, xả để máy chủ gửi tất cả tài liệu cùng một lúc dưới dạng gói getMore
  • một phần {Boolean}, một phần có hệ thống phân mảnh trả về kết quả một phần từ mongos

Hằng số¶

Tên hằng Giá trịMô tảCon trỏ. INIT0Trạng thái ban đầuCon trỏ. OPEN1Con trỏ mởCon trỏ. ĐÓNG2Con trỏ đóngCon trỏ. GET_MORE3Con trỏ thực hiện get more

con trỏ. cloneWithOptions¶

Sao chép một con trỏ nhất định nhưng sử dụng các tùy chọn mới

con trỏ. cloneWithOptions(con trỏ)¶Đối số
  • con trỏ (con trỏ) – con trỏ để sao chép
trả lại

đối tượng [tùy chọn] tùy chọn bổ sung cho bộ sưu tập khi nhân bản

tua lại¶

Đặt lại con trỏ này về trạng thái ban đầu. Tất cả các cài đặt như chuỗi truy vấn, tailable, batchSizeValue, skipValue và các giới hạn đều được giữ nguyên

tua lại() Trả về. con trỏ tự quay trở lại khi áp dụng tua lại

ví dụ

Một ví dụ hiển thị thông tin được trả về bởi indexInformation

var Db = require('mongodb').Db,
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    ReplSetServers = require('mongodb').ReplSetServers,
    ObjectID = require('mongodb').ObjectID,
    Binary = require('mongodb').Binary,
    GridStore = require('mongodb').GridStore,
    Grid = require('mongodb').Grid,
    Code = require('mongodb').Code,
    BSON = require('mongodb').pure().BSON,
    assert = require('assert');

var db = new Db('test', new Server('localhost', 27017));
// Establish connection to db
db.open(function(err, db) {
  var docs = [];

  // Insert 100 documents with some data
  for(var i = 0; i < 100; i++) {
    var d = new Date().getTime() + i*1000;
    docs[i] = {'a':i, createdAt:new Date(d)};
  }

  // Create collection
  db.createCollection('Should_correctly_rewind_and_restart_cursor', function(err, collection) {
    assert.equal(null, err);

    // insert all docs
    collection.insert(docs, {w:1}, function(err, result) {
      assert.equal(null, err);

      // Grab a cursor using the find
      var cursor = collection.find({});
      // Fetch the first object off the cursor
      cursor.nextObject(function(err, item) {
        assert.equal(0, item.a)
        // Rewind the cursor, resetting it to point to the start of the query
        cursor.rewind();

        // Grab the first object again
        cursor.nextObject(function(err, item) {
          assert.equal(0, item.a)

          db.close();
        })
      })
    })
  });
});

toArray¶

Trả về một mảng tài liệu. Người gọi chịu trách nhiệm đảm bảo rằng có đủ bộ nhớ để lưu kết quả. Lưu ý rằng mảng chỉ chứa một phần kết quả khi con trỏ này đã được truy cập trước đó. Trong trường hợp đó, con trỏ. tua lại () có thể được sử dụng để đặt lại con trỏ

toArray(gọi lại)¶Đối số
  • gọi lại (chức năng) – Điều này sẽ được gọi sau khi thực hiện thành công phương thức này. Tham số đầu tiên sẽ chứa đối tượng Lỗi nếu xảy ra lỗi hoặc null nếu không. Tham số thứ hai sẽ chứa một mảng các đối tượng BSON deserialized là kết quả của truy vấn
trả lại

vô giá trị

ví dụ

Một ví dụ hiển thị thông tin được trả về bởi indexInformation

var Db = require('mongodb').Db,
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    ReplSetServers = require('mongodb').ReplSetServers,
    ObjectID = require('mongodb').ObjectID,
    Binary = require('mongodb').Binary,
    GridStore = require('mongodb').GridStore,
    Grid = require('mongodb').Grid,
    Code = require('mongodb').Code,
    BSON = require('mongodb').pure().BSON,
    assert = require('assert');

var db = new Db('test', new Server('localhost', 27017));
// Establish connection to db
db.open(function(err, db) {

  // Create a collection to hold our documents
  db.createCollection('test_array', function(err, collection) {

    // Insert a test document
    collection.insert({'b':[1, 2, 3]}, {w:1}, function(err, ids) {

      // Retrieve all the documents in the collection
      collection.find().toArray(function(err, documents) {
        assert.equal(1, documents.length);
        assert.deepEqual([1, 2, 3], documents[0].b);

        db.close();
      });
    });
  });
});

mỗi¶

Lặp lại tất cả các tài liệu cho con trỏ này. Như với {con trỏ. toArray}, không phải tất cả các phần tử sẽ được lặp lại nếu con trỏ này đã được truy cập trước đó. Trong trường hợp đó, {con trỏ. tua lại} có thể được sử dụng để đặt lại con trỏ. Tuy nhiên, không giống như {cursor. toArray}, con trỏ sẽ chỉ chứa tối đa các phần tử kích thước lô tại bất kỳ thời điểm nào nếu kích thước lô được chỉ định. Mặt khác, người gọi có trách nhiệm đảm bảo rằng toàn bộ kết quả có thể phù hợp với bộ nhớ

mỗi đối số (gọi lại)
  • gọi lại (hàm) – điều này sẽ được gọi trong khi lặp lại mọi tài liệu của kết quả truy vấn. Tham số đầu tiên sẽ chứa đối tượng Lỗi nếu xảy ra lỗi hoặc null nếu không. Trong khi tham số thứ hai sẽ chứa tài liệu
trả lại

vô giá trị

ví dụ

Một ví dụ đơn giản lặp lại một truy vấn bằng cách sử dụng từng chức năng của con trỏ

var Db = require('mongodb').Db,
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    ReplSetServers = require('mongodb').ReplSetServers,
    ObjectID = require('mongodb').ObjectID,
    Binary = require('mongodb').Binary,
    GridStore = require('mongodb').GridStore,
    Grid = require('mongodb').Grid,
    Code = require('mongodb').Code,
    BSON = require('mongodb').pure().BSON,
    assert = require('assert');

var db = new Db('test', new Server('localhost', 27017));
// Establish connection to db
db.open(function(err, db) {

  // Create a collection
  db.createCollection('test_to_a_after_each', function(err, collection) {
    assert.equal(null, err);

    // Insert a document in the collection
    collection.insert({'a':1}, {w:1}, function(err, ids) {

      // Grab a cursor
      var cursor = collection.find();

      // Execute the each command, triggers for each document
      cursor.each(function(err, item) {

        // If the item is null then the cursor is exhausted/empty and closed
        if(item == null) {

          // Show that the cursor is closed
          cursor.toArray(function(err, items) {
            assert.ok(err != null);

            // Let's close the db
            db.close();
          });
        };
      });
    });
  });
});

đếm¶

Xác định số lượng kết quả mà truy vấn cho con trỏ này sẽ trả về

đếm (áp dụngSkipLimit, gọi lại)Đối số
  • applySkipLimit (boolean) – nếu được đặt thành true sẽ áp dụng bỏ qua và giới hạn được đặt trên con trỏ. Mặc định là sai
  • gọi lại (hàm) – cái này sẽ được gọi sau khi thực hiện phương thức này. Tham số đầu tiên sẽ chứa đối tượng Lỗi nếu xảy ra lỗi hoặc null nếu không. Trong khi tham số thứ hai sẽ chứa số lượng kết quả hoặc null nếu xảy ra lỗi
trả lại

vô giá trị

ví dụ

Một ví dụ đơn giản hiển thị chức năng đếm của con trỏ

var Db = require('mongodb').Db,
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    ReplSetServers = require('mongodb').ReplSetServers,
    ObjectID = require('mongodb').ObjectID,
    Binary = require('mongodb').Binary,
    GridStore = require('mongodb').GridStore,
    Grid = require('mongodb').Grid,
    Code = require('mongodb').Code,
    BSON = require('mongodb').pure().BSON,
    assert = require('assert');

var db = new Db('test', new Server('localhost', 27017));
// Establish connection to db
db.open(function(err, db) {

  // Creat collection
  db.createCollection('cursor_count_collection', function(err, collection) {
    assert.equal(null, err);

    // Insert some docs
    collection.insert([{a:1}, {a:2}], {w:1}, function(err, docs) {
      assert.equal(null, err);

      // Do a find and get the cursor count
      collection.find().count(function(err, count) {
        assert.equal(null, err);
        assert.equal(2, count);

        db.close();
      })
    });
  });
});

loại¶

Đặt tham số sắp xếp của con trỏ này thành giá trị đã cho

Phương thức này có các chữ ký phương thức sau. (keyOrList, gọi lại) (keyOrList, hướng, gọi lại)

sắp xếp (keyOrList, direction, gọi lại) Đối số
  • keyOrList (string) – Đây có thể là một chuỗi hoặc một mảng. Nếu được truyền dưới dạng chuỗi, chuỗi sẽ là trường để sắp xếp. Nếu truyền vào một mảng, mỗi phần tử sẽ đại diện cho một trường cần sắp xếp và phải là một mảng chứa định dạng [chuỗi, hướng]
  • hướng (chuỗi) – điều này xác định cách kết quả được sắp xếp. "asc", "ascending" hoặc 1 cho thứ tự tăng dần trong khi "desc", "descending hoặc -1 cho thứ tự giảm dần. Lưu ý rằng các chuỗi phân biệt chữ hoa chữ thường
  • gọi lại (hàm) – cái này sẽ được gọi sau khi thực hiện phương thức này. Tham số đầu tiên sẽ chứa đối tượng lỗi khi con trỏ đã đóng trong khi tham số thứ hai sẽ chứa tham chiếu đến đối tượng này khi thực thi thành công
trả lại

con trỏ một thể hiện của đối tượng này

ví dụ

Một ví dụ đơn giản cho thấy việc sử dụng sắp xếp trên con trỏ

var Db = require('mongodb').Db,
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    ReplSetServers = require('mongodb').ReplSetServers,
    ObjectID = require('mongodb').ObjectID,
    Binary = require('mongodb').Binary,
    GridStore = require('mongodb').GridStore,
    Grid = require('mongodb').Grid,
    Code = require('mongodb').Code,
    BSON = require('mongodb').pure().BSON,
    assert = require('assert');

var db = new Db('test', new Server('localhost', 27017));
// Establish connection to db
db.open(function(err, db) {

  // Create a collection
  db.createCollection('simple_sort_collection', function(err, collection) {
    assert.equal(null, err);

    // Insert some documents we can sort on
    collection.insert([{a:1}, {a:2}, {a:3}], {w:1}, function(err, docs) {
      assert.equal(null, err);

      // Do normal ascending sort
      collection.find().sort([['a', 1]]).nextObject(function(err, item) {
        assert.equal(null, err);
        assert.equal(1, item.a);

        // Do normal descending sort
        collection.find().sort([['a', -1]]).nextObject(function(err, item) {
          assert.equal(null, err);
          assert.equal(3, item.a);

          db.close();
        });
      });
    });
  });
});

giới hạn¶

Đặt tham số giới hạn của con trỏ này thành giá trị đã cho

giới hạn(giới hạn [ , gọi lại ] )Đối số.
  • giới hạn (số) – giới hạn mới
  • [gọi lại] (hàm) – gọi lại tùy chọn này sẽ được gọi sau khi thực hiện phương thức này. Tham số đầu tiên sẽ chứa đối tượng lỗi khi giới hạn đã cho không phải là số hợp lệ hoặc khi con trỏ đã đóng trong khi tham số thứ hai sẽ chứa tham chiếu đến đối tượng này khi thực hiện thành công
trả lại

con trỏ một thể hiện của đối tượng này

ví dụ

Một ví dụ đơn giản cho thấy việc sử dụng giới hạn trên con trỏ

var Db = require('mongodb').Db,
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    ReplSetServers = require('mongodb').ReplSetServers,
    ObjectID = require('mongodb').ObjectID,
    Binary = require('mongodb').Binary,
    GridStore = require('mongodb').GridStore,
    Grid = require('mongodb').Grid,
    Code = require('mongodb').Code,
    BSON = require('mongodb').pure().BSON,
    assert = require('assert');

var db = new Db('test', new Server('localhost', 27017));
// Establish connection to db
db.open(function(err, db) {

  // Create a collection
  db.createCollection('simple_limit_collection', function(err, collection) {
    assert.equal(null, err);

    // Insert some documents we can sort on
    collection.insert([{a:1}, {a:2}, {a:3}], {w:1}, function(err, docs) {
      assert.equal(null, err);

      // Limit to only one document returned
      collection.find().limit(1).toArray(function(err, items) {
        assert.equal(null, err);
        assert.equal(1, items.length);

        db.close();
      });
    });
  });
});

maxTimeMS¶

Chỉ định giới hạn thời gian cho thao tác truy vấn. Sau khi vượt quá thời gian quy định, hoạt động sẽ bị hủy bỏ và một lỗi sẽ được trả về máy khách. Nếu maxTimeMS là null, không có giới hạn nào được áp dụng

maxTimeMS(maxTimeMS [ , gọi lại ] )¶ .
  • maxTimeMS (số) – maxTimeMS cho truy vấn
  • [gọi lại] (hàm) – gọi lại tùy chọn này sẽ được gọi sau khi thực hiện phương thức này. Tham số đầu tiên sẽ chứa đối tượng lỗi khi giới hạn đã cho không phải là số hợp lệ hoặc khi con trỏ đã đóng trong khi tham số thứ hai sẽ chứa tham chiếu đến đối tượng này khi thực hiện thành công
trả lại

con trỏ một thể hiện của đối tượng này

setReadPreference¶

Đặt tùy chọn đọc cho con trỏ

setReadPreference(the [ , callback ] )¶ .
  • (chuỗi) – tùy chọn đọc cho con trỏ, một trong các Máy chủ. READ_PRIMARY, Máy chủ. READ_SECONDARY, Máy chủ. READ_SECONDARY_ONLY
  • [gọi lại] (hàm) – gọi lại tùy chọn này sẽ được gọi sau khi thực hiện phương thức này. Tham số đầu tiên sẽ chứa một đối tượng lỗi khi tùy chọn đọc được cung cấp không phải là một số hợp lệ hoặc khi con trỏ đã được đóng trong khi tham số thứ hai sẽ chứa tham chiếu đến đối tượng này khi thực thi thành công
trả lại

con trỏ một thể hiện của đối tượng này

nhảy¶

Đặt tham số bỏ qua của con trỏ này thành giá trị đã cho

skip(skip [ , callback ] )Đối số.
  • bỏ qua (số) – giá trị bỏ qua mới
  • [gọi lại] (hàm) – gọi lại tùy chọn này sẽ được gọi sau khi thực hiện phương thức này. Tham số đầu tiên sẽ chứa đối tượng lỗi khi giá trị bỏ qua đã cho không phải là số hợp lệ hoặc khi con trỏ đã đóng trong khi tham số thứ hai sẽ chứa tham chiếu đến đối tượng này khi thực hiện thành công
trả lại

con trỏ một thể hiện của đối tượng này

ví dụ

Một ví dụ đơn giản cho thấy việc sử dụng bỏ qua trên con trỏ

var Db = require('mongodb').Db,
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    ReplSetServers = require('mongodb').ReplSetServers,
    ObjectID = require('mongodb').ObjectID,
    Binary = require('mongodb').Binary,
    GridStore = require('mongodb').GridStore,
    Grid = require('mongodb').Grid,
    Code = require('mongodb').Code,
    BSON = require('mongodb').pure().BSON,
    assert = require('assert');

var db = new Db('test', new Server('localhost', 27017));
// Establish connection to db
db.open(function(err, db) {

  // Create a collection
  db.createCollection('simple_skip_collection', function(err, collection) {
    assert.equal(null, err);

    // Insert some documents we can sort on
    collection.insert([{a:1}, {a:2}, {a:3}], {w:1}, function(err, docs) {
      assert.equal(null, err);

      // Skip one document
      collection.find().skip(1).nextObject(function(err, item) {
        assert.equal(null, err);
        assert.equal(2, item.a);

        db.close();
      });
    });
  });
});

lôSize¶

Đặt tham số kích thước lô của con trỏ này thành giá trị đã cho

batchSize(batchSize [ , gọi lại ] )¶ .
  • batchSize (số) – kích thước lô mới
  • [gọi lại] (hàm) – gọi lại tùy chọn này sẽ được gọi sau khi thực hiện phương thức này. Tham số đầu tiên sẽ chứa đối tượng lỗi khi kích thước lô được cung cấp không phải là số hợp lệ hoặc khi con trỏ đã được đóng trong khi tham số thứ hai sẽ chứa tham chiếu đến đối tượng này khi thực thi thành công
trả lại

con trỏ một thể hiện của đối tượng này

ví dụ

Một ví dụ đơn giản cho thấy việc sử dụng batchSize trên con trỏ, batchSize chỉ quy định số lượng tài liệu được trả về cho mỗi lô bằng cách sử dụng getMoreCommand đối với máy chủ MongoDB

var Db = require('mongodb').Db,
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    ReplSetServers = require('mongodb').ReplSetServers,
    ObjectID = require('mongodb').ObjectID,
    Binary = require('mongodb').Binary,
    GridStore = require('mongodb').GridStore,
    Grid = require('mongodb').Grid,
    Code = require('mongodb').Code,
    BSON = require('mongodb').pure().BSON,
    assert = require('assert');

var db = new Db('test', new Server('localhost', 27017));
// Establish connection to db
db.open(function(err, db) {

  // Create a collection
  db.createCollection('simple_batch_size_collection', function(err, collection) {
    assert.equal(null, err);

    // Insert some documents we can sort on
    collection.insert([{a:1}, {a:2}, {a:3}], {w:1}, function(err, docs) {
      assert.equal(null, err);

      // Do normal ascending sort
      collection.find().batchSize(1).nextObject(function(err, item) {
        assert.equal(null, err);
        assert.equal(1, item.a);

        db.close();
      });
    });
  });
});

nextObject¶

Lấy tài liệu tiếp theo từ con trỏ

nextObject(gọi lại)¶Đối số
  • gọi lại (hàm) – cái này sẽ được gọi sau khi thực hiện phương thức này. Tham số đầu tiên sẽ chứa một đối tượng lỗi do lỗi trong khi tham số thứ hai sẽ chứa tài liệu từ kết quả trả về hoặc null nếu không còn kết quả nào nữa

ví dụ

Một ví dụ đơn giản cho thấy việc sử dụng nextObject

________số 8

giải thích¶

Nhận thông tin chi tiết về cách truy vấn được thực hiện trên con trỏ này và cơ sở dữ liệu mất bao lâu để xử lý nó