C () hoặc list () đều được. Phụ thuộc vào việc các thành phần có được đặt tên hay không và chúng có cùng một kiểu hay không (đối với danh sách). Điều tốt nhất cần làm là xem BSON đã tạo và xem liệu bạn có đang đạt được điều mình muốn hay không. Để kiểm soát tốt nhất đối tượng được tạo, hãy sử dụng mongo.bson.buffer và các hàm hoạt động trên nó. Trên thực tế, đây là lý do tại sao các truy vấn phụ không thành công. 'nhận xét' đang được tạo dưới dạng một subobject hơn là một mảng. mongo.bson.from.list () rất tiện dụng nhưng nó không cung cấp cho bạn quyền kiểm soát tương tự và đôi khi nó đoán sai về những gì cần tạo từ các cấu trúc phức tạp.
Tuy nhiên, truy vấn trên tập dữ liệu khác có thể được sửa như vậy:
buf <- mongo.bson.buffer.create()
mongo.bson.buffer.start.object(buf, "name.first")
mongo.bson.buffer.append(buf, "$in", c("Alex", "Horst"))
mongo.bson.buffer.finish.object(buf)
criteria <- mongo.bson.from.buffer(buf)
Lưu ý rằng bạn chắc chắn cần sử dụng một bộ đệm ở đây vì R sẽ bị nghẹn ở tên có dấu chấm.
Tôi hy vọng điều này làm rõ vấn đề của bạn. Hãy cho tôi biết nếu bạn có thêm bất kỳ câu hỏi nào.