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

So sánh hai trường của bộ sưu tập mongo bằng cách sử dụng trình điều khiển c # trong mono

Trên thực tế, nó không phải là rất đơn giản. Điều này có thể thực hiện được với câu truy vấn như:

var users = collection.Find(user => user.LastModifiedAt > user.LastSyncedAt).ToList();

Nhưng rất tiếc, MongoDriver không thể dịch biểu thức này. Bạn có thể truy vấn tất cả Người dùng và lọc ở phía máy khách:

var users = collection.Find(Builders<User>.Filter.Empty)
                      .ToEnumerable()
                      .Where(user => user.LastModifiedAt > user.LastSyncedAt)
                      .ToList();

Hoặc gửi truy vấn json, vì bản thân MongoDb có thể thực hiện điều đó:

var jsonFliter = "{\"$where\" : \"this.LastModifiedAt>this.LastSyncedAt\"}";
var users = collection.Find(new JsonFilterDefinition<User>(jsonFliter))
                      .ToList();

Và, vâng, bạn cần một Id - Thuộc tính cho lớp mô hình của bạn, tôi chưa đề cập đến nó trước, vì tôi nghĩ bạn đã có, chỉ là chưa được đăng trong câu hỏi.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Chuỗi Node.js Mongoose.js đến hàm ObjectId

  2. mongodb c # chọn trường cụ thể

  3. Mongorestore có thể lấy một đối số url duy nhất thay vì các đối số riêng biệt không?

  4. Lệnh nhắc nhở sử dụng MongoDB discord.py

  5. Làm cách nào để lọc mảng tài liệu con?