Вам нужно передать идентификаторы в определенном формате, используя ObjectId()
:
db.users.remove({_id: {$in: [ObjectId('Item1'), ObjectId('Item2'), ObjectId('Item2')]}});
Remove
не принимает целое число - вам нужно использовать экземпляр ObjectId
с _id
как string
.
Я думаю, вам нужно проверить, что ваша таблица создана и ваши данные существуют, и вы можете их восстановить. Для этого просто перейдите по по этой ссылке и посмотрите данные в эмуляторе.
Если это работает, то я думаю, что в вашем коде получения данных нет проблем.
I've modified your code a little bit:
public ArrayList<String> getAllContacts() {
ArrayList<String> array_list = new ArrayList<>();
SQLiteDatabase db = this.getReadableDatabase();
String selectQuery = "SELECT * FROM "+CONTACTS_TABLE_NAME;
Cursor res = db.rawQuery( selectQuery, null );
//check if data exist, proceed
if (res.moveToNext()){
do{
array_list.add(res.getString(res.getColumnIndex(CONTACTS_COLUMN_NAME)));
}while(res.moveToNext());
}
//remember to close cursor after use
res.close();
return array_list;
}
//void instead of boolean
public void insertContact (String name, String surname, String phone, String address,String postal) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(CONTACTS_COLUMN_NAME, name);
contentValues.put(CONTACTS_COLUMN_SURNAME, surname);
contentValues.put(CONTACTS_COLUMN_PHONE, phone);
contentValues.put(CONTACTS_COLUMN_ADDRESS, address);
contentValues.put(CONTACTS_COLUMN_POSTAL, postal);
//throw if not inserted
db.insertOrThrow("contacts", "", contentValues);
}
затем вы вставляете в свой стол вот так:
try {
mydb.insertContact("one", "two", "three", "foir", "five");
}catch(Exception e){
Toast.makeText(context, "Insert Failed: " + e.toString(), Toast.LENGTH_SHORT).show();
}
Вот пример, надеюсь, ваши схемы БД верны. Этот метод принадлежит вашему классу, который расширяет SqkiteDatabase.
//-----------------------------------------------------------------------------------------------------
public boolean insertNote(NoteModel noteModel) {
if (LOG_DEBUG) UtilLogger.showLogInsert(TAG, noteModel);
try {
ContentValues contentValues = new ContentValues();
contentValues.put(DBSchema.DB_TITLE, noteModel.getTitle());
contentValues.put(DBSchema.DB_IMAGE_PATH, noteModel.getImgUriPath());
contentValues.put(DBSchema.DB_SUB_TEXT, noteModel.getSub_text());
contentValues.put(DBSchema.DB_CREATE_DATE, noteModel.getCreateDate());
contentValues.put(DBSchema.DB_UPDATE_DATE, noteModel.getUpdateDate());
contentValues.put(DBSchema.DB_SCHEDULED_TIME_LONG, noteModel.getScheduleTimeLong());
contentValues.put(DBSchema.DB_SCHEDULED_TIME_WHEN, noteModel.getScheduledWhenLong());
contentValues.put(DBSchema.DB_SCHEDULED_TITLE, noteModel.getScheduledTitle());
contentValues.put(DBSchema.DB_IS_ALARM_SCHEDULED, noteModel.getIsAlarmScheduled());
contentValues.put(DBSchema.DB_IS_TASK_DONE, noteModel.getIsTaskDone());
contentValues.put(DBSchema.DB_IS_ARCHIVED, noteModel.getIsArchived());
long rowId = mSqLiteDatabase.insert(DBSchema.DB_TABLE_NAME, null, contentValues);
if (LOG_DEBUG) Log.w(TAG, " insert Done : at row Id: " + rowId);
return true;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}