MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

kueri mongoDB WHERE _id> ambang batas

Bandingkan suka dengan suka

_id key di mongo bukan (secara default) string - ini adalah objectId mongo.

Anda perlu membandingkan dengan jenis yang sama untuk mendapatkan hasil yang berarti:

var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId();
db.things.find(_id: {$gt: oid});

Jangan membaca file mongoexport

File ekspor Mongo terlihat seperti ini:

{ "_id" : { "$oid" : "4f876b00c56da1fa6a000030" }, ...

Ini adalah representasi json dari id objek. Mongo tidak ingin Anda menggunakan sintaks semacam itu ketika benar-benar menanyakan db. Ini tidak akan berhasil:

# will not work
db.things.find("_id.$oid": {$gt: "string"});

id sebagai string

Jika Anda memiliki id sebagai string, Anda akan melakukan:

var ObjectId = require('mongodb').ObjectID;
var str = "123456789012345678901234";
var oid = new ObjectId(str);
db.things.find(_id: {$gt: oid});

id sebagai sebagian string

Jika string yang Anda miliki bukan oid yang valid (panjangnya tidak 24 karakter), Anda hanya akan mendapatkan pengecualian dari mongo - atau tergantung pada driver Anda, oid baru. Jika Anda memiliki id objek parsial, Anda dapat mengisi dengan 0s untuk membuat oid yang valid dan oleh karena itu mengizinkan pencarian dengan id objek parsial. misalnya:

var ObjectId = require('mongodb').ObjectID;
var oid = new ObjectId(str + "0000");
db.things.find(_id: {$gt: oid});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Efek generasi mongodb _id pada Pengindeksan

  2. Penentu Format MongoDB $dateFromString

  3. Masukkan Kamus ke MongoDB dengan c# driver

  4. Driver MongoDB Java:Driver MongoCore vs. Driver MongoDB vs. Driver Async MongoDB

  5. Saya dapat menentukan tipe BSON secara manual di Driver NodeJS mongodb? Saya mendapatkan kesalahan jika saya menggunakan $numberLong