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

Cách thực hiện truy vấn bằng dấu chấm (.) Thông qua Mongoose trong Node.js và Cách thêm mảng trống

Có một số vấn đề ở đây mà bạn có thể gặp phải.

Đầu tiên, nhóm là một thuộc tính mảng, nhưng bạn đang gán một đối tượng cho nó. Bạn cần làm như sau:

var user = new users({
    userID: id, //give the id of the next user in Dbase
    userName: userName, 
    userEmail: 'userEmail',
    teams:[],
    socialMedias: [{socialMediaType: socialMediaID}]
});

Thứ hai, nếu socialMediaType được chuyển vào dưới dạng một tham số chức năng, bạn không thể sử dụng nó như cách bạn đang làm. Bạn cần làm như sau:

var socialMedias = {};
socialMedias[socialMediaType] = socialMediaID;
var user = new users({
    userID: id, //give the id of the next user in Dbase
    userName: userName, 
    userEmail: 'userEmail',
    teams:[],
    socialMedias: [socialMedias]
});

Thứ ba, findOne của bạn sẽ không hoạt động như hiện tại. Từ những gì tôi có thể thu thập được về ý định của bạn ở đây, bạn cần một cái gì đó như thế này:

function searchUser(socialMediaID, socialMediaType){
    var user
    var query = {};
    query["socialMedias."+socialMediaType] = socialMediaID;

    users.findOne(query, function(err, userFound){

        if(err) return handleError(err);
        user = userFound; 
    });

    //what does  MongoDb return if it does not find the document?

    return user;
}

Nhưng thứ tư, ngay cả điều đó sẽ không hoạt động bởi vì bạn đang trả về người dùng một cách đồng bộ từ một phương thức thực hiện và hoạt động không đồng bộ. Có nhiều cách khác nhau để giải quyết vấn đề đó, nhưng bạn có thể bắt đầu bằng cách đọc về các lời hứa hoặc chuyển một hàm gọi lại vào searchUser.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách chạy các lệnh mongodb thô từ pymongo

  2. Trong NodeJS, làm thế nào để xuất kết quả từ mongodb với các tên trường khác nhau?

  3. Cách đặt giới hạn cho kích thước mảng trong lược đồ Mongoose

  4. Sắp xếp MongoDB so với tổng hợp $ sort trên chỉ mục mảng

  5. Xử lý chính xác các hành động Mongo không đồng bộ trong Node Promise