2015-04-23 17 views
11

Có cách nào để kiểm tra xem số lượng lớn Mongodb có một số thao tác cần thực hiện trước khi gọi .execute() trên đó không? Tôi khá chắc chắn tôi không gửi bất kỳ đối tượng trống để chèn nhưng cứ bị lỗi này trên một tài liệuKiểm tra xem số lượng lớn có trống trong mongoDB

Invalid Operation, No operations in bulk 

Dưới đây là một số mã:

bulk.find({"AcctSessionId":insert['AcctSessionId']}).upsert().update({$set:insert}); 

và chèn đối tượng trông giống như

này
{ AcctStatusTypeU: '3', 
    AcctSessionId: '1183628512-105130252', 
    h323setuptimeU: '<sip:[email protected]>', 
    h323connecttimeU: Sun Mar 08 2015 19:30:37 GMT+0100 (CET), 
    AcmeSessionEgressRealmU: '620', 
    AcmeSessionIngressRealmU: 'CORE_PSX' 
} 

Tôi thấy các đối tượng đã được chèn nhưng vẫn gặp lỗi này. Bằng cách này đây là một trình điều khiển Nodejs tôi đang nói về và tôi đang sử dụng UNorderedBulkOp để chèn tài liệu.

+0

Tôi đoán không có phương pháp để làm việc kiểm tra này ... – vodich

Trả lời

0

Bạn có thể dễ dàng kiểm tra thời tiết một hoạt động với số lượng lớn đã hoạt động để thực hiện:

bulk 

lợi nhuận giống như

{ "nInsertOps" : 0, "nUpdateOps" : 1, "nRemoveOps" : 0, "nBatches" : 1 } 

lý do này do tại sao hoạt động với số lượng lớn của bạn thực sự là rỗng là vì h323connecttimeU bạn giữ một giá trị bất hợp pháp - bạn cần trích dẫn chuỗi ngày tháng.

Hơn nữa, bạn đang sử dụng thao tác hàng loạt theo cách sai. Nó phải là

bulk.find({"AcctSessionId":insert['AcctSessionId']}).upsert().updateOne(insert); 
+0

nope, ngày là tốt đẹp tôi chỉ cần sao chép nó, nhưng nó được khởi tạo như ngày mới ("chuỗi ngày"), không chắc chắn về phần upsert vì nó hoạt động tốt như thế này, sẽ kiểm tra. Làm thế nào để bạn sử dụng "số lượng lớn" trong mã. Tôi đoán là bạn sử dụng nó như bạn đã viết trong giao diện điều khiển phải không? – vodich

+0

@vodich Đúng, vì đó là MongoDBs [lingua franca] (https://en.wikipedia.org/wiki/Lingua_franca). Và bạn không cần thiết lập tài liệu 'chèn' của mình, bạn chỉ cần thiết lập các trường riêng lẻ. –

7

Tôi gặp vấn đề tương tự. Kiểm tra bulk.length

if (bulk.length > 0) { 
    // run bulk operations 
} 
Các vấn đề liên quan