MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Nhiều $ nơi truy vấn trong MongoDB

Tôi đoán phần nào đó bạn đã trộn lẫn cú pháp giữa JavaScript và MongoDB.
$ where được thực thi bởi công cụ JavaScript ở phía máy chủ, vì vậy $ where của bạn câu lệnh phải tuân theo cú pháp của JavaScipt. Ví dụ:this.chr.no == 5 thực sự là this.chr[index].no == 5 như bạn mong đợi; và một biến không thể bằng hai giá trị khác nhau cùng một lúc. Các mã sau để bạn tham khảo:

var judge = function () {
    var unexpect = "X";
    var letter1 = unexpect, letter2 = unexpect;
    for (var i in this.chr) {
        var chr = this.chr[i];
        if (chr.no == 5) {
            letter1 = chr.letter;
        } else if (chr.no == 6) {
            letter2 = chr.letter;
        }
    }
    if (letter1 != letter2 && letter1 != unexpect && letter2 != unexpect) {
        return true;
    }
    return false;
};

db.sss.find({
    "pos": { "$gte": 200000, "$lt": 2000000 },
    "$and" : [{"chr.no" : 5}, {"chr.no" : 6}],    // narrow range further
    "$where": judge
}, {"x_type":1, "sub_name":1, "name":1, "pos":1, "s_type":1, _id:0});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mô hình hóa dữ liệu Mongo / cập nhật để bỏ phiếu (lên và xuống)

  2. Cách thích hợp để thêm trường vào bộ sưu tập người dùng trong sao băng

  3. Kết nối với máy chủ mongodb không tồn tại không có ngoại lệ

  4. giới hạn mongodb trong tài liệu nhúng

  5. Làm cách nào để hủy đặt tất cả chuỗi bản ghi trong mongodb bằng php?